1
- // Tests that MTE tags and values stored in the top byte of a pointer (TBI) are
2
- // preserved across FFI boundaries (C <-> Rust).
3
- // This test does not require MTE: whilst the test will use MTE if available, if it is not,
4
- // arbitrary tag bits are set using TBI.
1
+ //! Tests that MTE tags and values stored in the top byte of a pointer (TBI) are preserved across
2
+ //! FFI boundaries (C <-> Rust). This test does not require MTE: whilst the test will use MTE if
3
+ //! available, if it is not, arbitrary tag bits are set using TBI.
5
4
6
- // This test is only valid for AArch64.
7
- // The linker must be explicitly specified when cross-compiling, so it is limited to
8
- // `aarch64-unknown-linux-gnu`.
9
5
//@ only-aarch64-unknown-linux-gnu
6
+ // Reason: this test is only valid for AArch64 with `gcc`. The linker must be explicitly specified
7
+ // when cross-compiling, so it is limited to `aarch64-unknown-linux-gnu`.
10
8
11
- use run_make_support:: { cc , dynamic_lib_name, extra_c_flags, run, rustc, target} ;
9
+ use run_make_support:: { dynamic_lib_name, extra_c_flags, gcc , run, rustc, target} ;
12
10
13
11
fn main ( ) {
14
12
run_test ( "int" ) ;
@@ -29,7 +27,8 @@ fn run_test(variant: &str) {
29
27
. target ( target ( ) )
30
28
. linker ( "aarch64-linux-gnu-gcc" )
31
29
. run ( ) ;
32
- cc ( ) . input ( format ! ( "bar_{variant}.c" ) )
30
+ gcc ( )
31
+ . input ( format ! ( "bar_{variant}.c" ) )
33
32
. input ( dynamic_lib_name ( "foo" ) )
34
33
. out_exe ( "test" )
35
34
. args ( & flags)
0 commit comments