@@ -779,26 +779,31 @@ impl RiscvInterruptKind {
779779/// Metadata describing how the arguments to a native function
780780/// should be passed in order to respect the native ABI.
781781///
782+ /// The signature represented by this type may not match the MIR function signature.
783+ /// Certain attributes, like `#[track_caller]` can introduce additional arguments, which are present in [`FnAbi`], but not in `FnSig`.
784+ /// While this difference is rarely relevant, it should still be kept in mind.
785+ ///
782786/// I will do my best to describe this structure, but these
783787/// comments are reverse-engineered and may be inaccurate. -NDM
784788#[ derive( Clone , PartialEq , Eq , Hash , HashStable_Generic ) ]
785789pub struct FnAbi < ' a , Ty > {
786- /// The LLVM types of each argument.
790+ /// The type, layout, and information about how each argument is passed .
787791 pub args : Box < [ ArgAbi < ' a , Ty > ] > ,
788792
789- /// LLVM return type.
793+ /// The layout, type, and the way a value is returned from this function .
790794 pub ret : ArgAbi < ' a , Ty > ,
791795
796+ /// Marks this function as variadic (accepting a variable number of arguments).
792797 pub c_variadic : bool ,
793798
794799 /// The count of non-variadic arguments.
795800 ///
796801 /// Should only be different from args.len() when c_variadic is true.
797802 /// This can be used to know whether an argument is variadic or not.
798803 pub fixed_count : u32 ,
799-
804+ /// The calling convention of this function.
800805 pub conv : Conv ,
801-
806+ /// Indicates if an unwind may happen across a call to this function.
802807 pub can_unwind : bool ,
803808}
804809
0 commit comments