@@ -59,6 +59,9 @@ impl ArgAttributesExt for ArgAttributes {
5959 llattr. apply_llfn ( idx, llfn) ;
6060 }
6161 }
62+ if let Some ( align) = self . pointee_align {
63+ llvm:: LLVMRustAddAlignmentAttr ( llfn, idx. as_uint ( ) , align. bytes ( ) as u32 ) ;
64+ }
6265 match self . arg_ext {
6366 ArgExtension :: None => { }
6467 ArgExtension :: Zext => llvm:: Attribute :: ZExt . apply_llfn ( idx, llfn) ,
@@ -77,9 +80,6 @@ impl ArgAttributesExt for ArgAttributes {
7780 }
7881 regular -= ArgAttribute :: NonNull ;
7982 }
80- if let Some ( align) = self . pointee_align {
81- llvm:: LLVMRustAddAlignmentAttr ( llfn, idx. as_uint ( ) , align. bytes ( ) as u32 ) ;
82- }
8383 for ( attr, llattr) in OPTIMIZATION_ATTRIBUTES {
8484 if regular. contains ( attr) {
8585 llattr. apply_llfn ( idx, llfn) ;
@@ -105,6 +105,13 @@ impl ArgAttributesExt for ArgAttributes {
105105 llattr. apply_callsite ( idx, callsite) ;
106106 }
107107 }
108+ if let Some ( align) = self . pointee_align {
109+ llvm:: LLVMRustAddAlignmentCallSiteAttr (
110+ callsite,
111+ idx. as_uint ( ) ,
112+ align. bytes ( ) as u32 ,
113+ ) ;
114+ }
108115 match self . arg_ext {
109116 ArgExtension :: None => { }
110117 ArgExtension :: Zext => llvm:: Attribute :: ZExt . apply_callsite ( idx, callsite) ,
@@ -127,13 +134,6 @@ impl ArgAttributesExt for ArgAttributes {
127134 }
128135 regular -= ArgAttribute :: NonNull ;
129136 }
130- if let Some ( align) = self . pointee_align {
131- llvm:: LLVMRustAddAlignmentCallSiteAttr (
132- callsite,
133- idx. as_uint ( ) ,
134- align. bytes ( ) as u32 ,
135- ) ;
136- }
137137 for ( attr, llattr) in OPTIMIZATION_ATTRIBUTES {
138138 if regular. contains ( attr) {
139139 llattr. apply_callsite ( idx, callsite) ;
0 commit comments