diff --git a/src/test/ui/issues/issue-91050.rs b/src/test/ui/issues/issue-91050-1.rs similarity index 92% rename from src/test/ui/issues/issue-91050.rs rename to src/test/ui/issues/issue-91050-1.rs index 50763d30931..403a41462ef 100644 --- a/src/test/ui/issues/issue-91050.rs +++ b/src/test/ui/issues/issue-91050-1.rs @@ -1,5 +1,5 @@ // build-pass -// compile-flags: --crate-type lib -Ccodegen-units=1 +// compile-flags: --crate-type=rlib --emit=llvm-ir -Cno-prepopulate-passes // This test declares globals by the same name with different types, which // caused problems because Module::getOrInsertGlobal would return a Constant* diff --git a/src/test/ui/issues/issue-91050-2.rs b/src/test/ui/issues/issue-91050-2.rs new file mode 100644 index 00000000000..2ff954d15ca --- /dev/null +++ b/src/test/ui/issues/issue-91050-2.rs @@ -0,0 +1,24 @@ +// build-pass +// compile-flags: --crate-type=rlib --emit=llvm-ir -Cno-prepopulate-passes + +// This is a variant of issue-91050-1.rs -- see there for an explanation. + +pub mod before { + extern "C" { + pub static GLOBAL1: [u8; 1]; + } + + pub unsafe fn do_something_with_array() -> u8 { + GLOBAL1[0] + } +} + +pub mod inner { + extern "C" { + pub static GLOBAL1: u8; + } + + pub unsafe fn call() -> u8 { + GLOBAL1 + 42 + } +}