respect repr(align(N)) on functions in miri
This commit is contained in:
parent
49e5e4e3a5
commit
2d21c14015
2 changed files with 35 additions and 2 deletions
21
src/tools/miri/tests/pass/fn_align.rs
Normal file
21
src/tools/miri/tests/pass/fn_align.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
//@compile-flags: -Zmin-function-alignment=8
|
||||
#![feature(fn_align)]
|
||||
|
||||
// When a function uses `repr(align(N))`, the function address should be a multiple of `N`.
|
||||
|
||||
#[repr(align(256))]
|
||||
fn foo() {}
|
||||
|
||||
#[repr(align(16))]
|
||||
fn bar() {}
|
||||
|
||||
#[repr(align(4))]
|
||||
fn baz() {}
|
||||
|
||||
fn main() {
|
||||
assert!((foo as usize).is_multiple_of(256));
|
||||
assert!((bar as usize).is_multiple_of(16));
|
||||
|
||||
// The maximum of `repr(align(N))` and `-Zmin-function-alignment=N` is used.
|
||||
assert!((baz as usize).is_multiple_of(8));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue