summaryrefslogtreecommitdiffstats
path: root/tests/codegen/align-fn.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codegen/align-fn.rs')
-rw-r--r--tests/codegen/align-fn.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/codegen/align-fn.rs b/tests/codegen/align-fn.rs
index c5886cf28..f3cf614e1 100644
--- a/tests/codegen/align-fn.rs
+++ b/tests/codegen/align-fn.rs
@@ -7,3 +7,43 @@
#[no_mangle]
#[repr(align(16))]
pub fn fn_align() {}
+
+pub struct A;
+
+impl A {
+ // CHECK: align 16
+ #[no_mangle]
+ #[repr(align(16))]
+ pub fn method_align(self) {}
+
+ // CHECK: align 16
+ #[no_mangle]
+ #[repr(align(16))]
+ pub fn associated_fn() {}
+}
+
+trait T: Sized {
+ fn trait_fn() {}
+
+ // CHECK: align 32
+ #[repr(align(32))]
+ fn trait_method(self) {}
+}
+
+impl T for A {
+ // CHECK: align 16
+ #[no_mangle]
+ #[repr(align(16))]
+ fn trait_fn() {}
+
+ // CHECK: align 16
+ #[no_mangle]
+ #[repr(align(16))]
+ fn trait_method(self) {}
+}
+
+impl T for () {}
+
+pub fn foo() {
+ ().trait_method();
+}