diff options
Diffstat (limited to 'tests/codegen-llvm/direct-access-external-data.rs')
| -rw-r--r-- | tests/codegen-llvm/direct-access-external-data.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/codegen-llvm/direct-access-external-data.rs b/tests/codegen-llvm/direct-access-external-data.rs new file mode 100644 index 00000000000..5b2ff41ef05 --- /dev/null +++ b/tests/codegen-llvm/direct-access-external-data.rs @@ -0,0 +1,21 @@ +//@ only-loongarch64-unknown-linux-gnu + +//@ revisions: DEFAULT DIRECT INDIRECT +//@ [DEFAULT] compile-flags: -C relocation-model=static +//@ [DIRECT] compile-flags: -C relocation-model=static -Z direct-access-external-data=yes +//@ [INDIRECT] compile-flags: -C relocation-model=static -Z direct-access-external-data=no + +#![crate_type = "rlib"] + +// DEFAULT: @VAR = external {{.*}} global i32 +// DIRECT: @VAR = external dso_local {{.*}} global i32 +// INDIRECT: @VAR = external {{.*}} global i32 + +extern "C" { + static VAR: i32; +} + +#[no_mangle] +pub fn get() -> i32 { + unsafe { VAR } +} |
