mirror of
https://github.com/rust-lang/rust
synced 2024-09-06 01:11:17 +00:00
Improved the documentation of the FnAbi struct
This commit is contained in:
parent
ac385a5af6
commit
257d222e4b
|
@ -779,16 +779,21 @@ pub fn as_str(&self) -> &'static str {
|
|||
/// Metadata describing how the arguments to a native function
|
||||
/// should be passed in order to respect the native ABI.
|
||||
///
|
||||
/// The signature represented by this type may not match the MIR function signature.
|
||||
/// Certain attributes, like `#[track_caller]` can introduce additional arguments, which are present in [`FnAbi`], but not in `FnSig`.
|
||||
/// While this difference is rarely relevant, it should still be kept in mind.
|
||||
///
|
||||
/// I will do my best to describe this structure, but these
|
||||
/// comments are reverse-engineered and may be inaccurate. -NDM
|
||||
#[derive(Clone, PartialEq, Eq, Hash, HashStable_Generic)]
|
||||
pub struct FnAbi<'a, Ty> {
|
||||
/// The LLVM types of each argument.
|
||||
/// The type, layout, and information about how each argument is passed.
|
||||
pub args: Box<[ArgAbi<'a, Ty>]>,
|
||||
|
||||
/// LLVM return type.
|
||||
/// The layout, type, and the way a value is returned from this function.
|
||||
pub ret: ArgAbi<'a, Ty>,
|
||||
|
||||
/// Marks this function as variadic (accepting a variable number of arguments).
|
||||
pub c_variadic: bool,
|
||||
|
||||
/// The count of non-variadic arguments.
|
||||
|
@ -796,9 +801,9 @@ pub struct FnAbi<'a, Ty> {
|
|||
/// Should only be different from args.len() when c_variadic is true.
|
||||
/// This can be used to know whether an argument is variadic or not.
|
||||
pub fixed_count: u32,
|
||||
|
||||
/// The calling convention of this function.
|
||||
pub conv: Conv,
|
||||
|
||||
/// Indicates if an unwind may happen across a call to this function.
|
||||
pub can_unwind: bool,
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue