diff options
| author | bors <bors@rust-lang.org> | 2022-11-09 04:43:43 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-11-09 04:43:43 +0000 |
| commit | 91385d5776a381b7fd24c0be41879f15fc834e43 (patch) | |
| tree | 81cba8034ed39a068537dff105f1c69fbef5c9b2 /src/test/codegen | |
| parent | bc2504a83ca6ee8f6717dedd0721b90ffcbe1300 (diff) | |
| parent | 6c021cf07d8e47d33b8d764b9505d3442177e241 (diff) | |
| download | rust-91385d5776a381b7fd24c0be41879f15fc834e43.tar.gz rust-91385d5776a381b7fd24c0be41879f15fc834e43.zip | |
Auto merge of #104179 - Manishearth:rollup-yvsx5hh, r=Manishearth
Rollup of 7 pull requests Successful merges: - #100508 (avoid making substs of type aliases late bound when used as fn args) - #101381 (Test that target feature mix up with homogeneous floats is sound) - #103353 (Fix Access Violation when using lld & ThinLTO on windows-msvc) - #103521 (Avoid possible infinite loop when next_point reaching the end of file) - #103559 (first move on a nested span_label) - #103778 (Update several crates for improved support of the new targets) - #103827 (Properly remap and check for substs compatibility in `confirm_impl_trait_in_trait_candidate`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/auxiliary/static_dllimport_aux.rs | 13 | ||||
| -rw-r--r-- | src/test/codegen/issue-81408-dllimport-thinlto-windows.rs | 15 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/test/codegen/auxiliary/static_dllimport_aux.rs b/src/test/codegen/auxiliary/static_dllimport_aux.rs new file mode 100644 index 00000000000..afb0dc42f44 --- /dev/null +++ b/src/test/codegen/auxiliary/static_dllimport_aux.rs @@ -0,0 +1,13 @@ +use std::sync::atomic::{AtomicPtr, Ordering}; + +#[inline(always)] +pub fn memrchr() { + fn detect() {} + + static CROSS_CRATE_STATIC_ITEM: AtomicPtr<()> = AtomicPtr::new(detect as *mut ()); + + unsafe { + let fun = CROSS_CRATE_STATIC_ITEM.load(Ordering::SeqCst); + std::mem::transmute::<*mut (), fn()>(fun)() + } +} diff --git a/src/test/codegen/issue-81408-dllimport-thinlto-windows.rs b/src/test/codegen/issue-81408-dllimport-thinlto-windows.rs new file mode 100644 index 00000000000..0b6ab4f7ecb --- /dev/null +++ b/src/test/codegen/issue-81408-dllimport-thinlto-windows.rs @@ -0,0 +1,15 @@ +// compile-flags: -O -C lto=thin -C prefer-dynamic=no +// only-windows +// aux-build:static_dllimport_aux.rs + +// Test that on Windows, when performing ThinLTO, we do not mark cross-crate static items with +// dllimport because lld does not fix the symbol names for us. + +extern crate static_dllimport_aux; + +// CHECK-LABEL: @{{.+}}CROSS_CRATE_STATIC_ITEM{{.+}} = +// CHECK-SAME: external local_unnamed_addr global %"{{.+}}AtomicPtr + +pub fn main() { + static_dllimport_aux::memrchr(); +} |
