diff options
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/abi.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/compiler/rustc_codegen_llvm/src/abi.rs b/compiler/rustc_codegen_llvm/src/abi.rs index a20801914ad..5b8cc238480 100644 --- a/compiler/rustc_codegen_llvm/src/abi.rs +++ b/compiler/rustc_codegen_llvm/src/abi.rs @@ -59,6 +59,9 @@ impl ArgAttributesExt for ArgAttributes { llattr.apply_llfn(idx, llfn); } } + if let Some(align) = self.pointee_align { + llvm::LLVMRustAddAlignmentAttr(llfn, idx.as_uint(), align.bytes() as u32); + } match self.arg_ext { ArgExtension::None => {} ArgExtension::Zext => llvm::Attribute::ZExt.apply_llfn(idx, llfn), @@ -77,9 +80,6 @@ impl ArgAttributesExt for ArgAttributes { } regular -= ArgAttribute::NonNull; } - if let Some(align) = self.pointee_align { - llvm::LLVMRustAddAlignmentAttr(llfn, idx.as_uint(), align.bytes() as u32); - } for (attr, llattr) in OPTIMIZATION_ATTRIBUTES { if regular.contains(attr) { llattr.apply_llfn(idx, llfn); @@ -105,6 +105,13 @@ impl ArgAttributesExt for ArgAttributes { llattr.apply_callsite(idx, callsite); } } + if let Some(align) = self.pointee_align { + llvm::LLVMRustAddAlignmentCallSiteAttr( + callsite, + idx.as_uint(), + align.bytes() as u32, + ); + } match self.arg_ext { ArgExtension::None => {} ArgExtension::Zext => llvm::Attribute::ZExt.apply_callsite(idx, callsite), @@ -127,13 +134,6 @@ impl ArgAttributesExt for ArgAttributes { } regular -= ArgAttribute::NonNull; } - if let Some(align) = self.pointee_align { - llvm::LLVMRustAddAlignmentCallSiteAttr( - callsite, - idx.as_uint(), - align.bytes() as u32, - ); - } for (attr, llattr) in OPTIMIZATION_ATTRIBUTES { if regular.contains(attr) { llattr.apply_callsite(idx, callsite); |
