Support #[align(…)] on fns in extern blocks
This commit is contained in:
@@ -1915,7 +1915,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
||||
/// Checks if the `#[align]` attributes on `item` are valid.
|
||||
fn check_align(&self, span: Span, target: Target, align: Align, repr_span: Span) {
|
||||
match target {
|
||||
Target::Fn | Target::Method(_) => {}
|
||||
Target::Fn | Target::Method(_) | Target::ForeignFn => {}
|
||||
Target::Struct | Target::Union | Target::Enum => {
|
||||
self.dcx().emit_err(errors::AlignShouldBeReprAlign {
|
||||
span: repr_span,
|
||||
|
||||
@@ -116,3 +116,17 @@ pub fn align_specified_twice_2() {}
|
||||
#[align(32)]
|
||||
#[align(256)]
|
||||
pub fn align_specified_twice_3() {}
|
||||
|
||||
const _: () = {
|
||||
// CHECK-LABEL: align_unmangled
|
||||
// CHECK-SAME: align 256
|
||||
#[unsafe(no_mangle)]
|
||||
#[align(32)]
|
||||
#[align(256)]
|
||||
extern "C" fn align_unmangled() {}
|
||||
};
|
||||
|
||||
unsafe extern "C" {
|
||||
#[align(256)]
|
||||
fn align_unmangled();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user