Skip to main content

Module abi_check

Module abi_check 

Source
Expand description

This module ensures that if a function’s ABI requires a particular target feature, that target feature is enabled both on the callee and all callers.

Re-exportsΒ§

use rustc_abi::BackendRepr; πŸ”’
use rustc_abi::CanonAbi; πŸ”’
use rustc_abi::ExternAbi; πŸ”’
use rustc_abi::RegKind; πŸ”’
use rustc_abi::X86Call; πŸ”’
use rustc_hir::CRATE_HIR_ID; πŸ”’
use rustc_hir::HirId; πŸ”’
use rustc_middle::mir; πŸ”’
use rustc_middle::mir::Location; πŸ”’
use rustc_middle::mir::traversal; πŸ”’
use rustc_middle::ty::layout::FnAbiRequest; πŸ”’
use rustc_middle::ty::layout::codegen_handle_fn_abi_err; πŸ”’
use rustc_middle::ty; πŸ”’
use rustc_middle::ty::Instance; πŸ”’
use rustc_middle::ty::InstanceKind; πŸ”’
use rustc_middle::ty::Ty; πŸ”’
use rustc_middle::ty::TyCtxt; πŸ”’
use rustc_span::def_id::DefId; πŸ”’
use rustc_span::DUMMY_SP; πŸ”’
use rustc_span::Span; πŸ”’
use rustc_span::Symbol; πŸ”’
use rustc_span::sym; πŸ”’
use rustc_target::callconv::FnAbi; πŸ”’
use rustc_target::callconv::PassMode; πŸ”’
use crate::diagnostics; πŸ”’

EnumsΒ§

UsesVectorRegisters πŸ”’
Are vector registers used?

FunctionsΒ§

check_call_site_abi πŸ”’
Check the ABI at a call site, emitting an error when:
check_callees_abi πŸ”’
check_feature_dependent_abi πŸ”’
check_instance_abi πŸ”’
Checks the ABI of an Instance, emitting an error when:
do_check_simd_vector_abi πŸ”’
Checks whether a certain function ABI is compatible with the target features currently enabled for a certain function. is_call indicates whether this is a call-site check or a definition-site check; this is only relevant for the wording in the emitted error.
do_check_unsized_params πŸ”’
Emit an error when a non-rustic ABI has unsized parameters. Unsized types do not have a stable layout, so should not be used with stable ABIs. is_call indicates whether this is a call-site check or a definition-site check; this is only relevant for the wording in the emitted error.
passes_vectors_by_value πŸ”’
Determines whether the combination of mode and repr will use fixed vector registers, scalable vector registers or no vector registers.