diff options
Diffstat (limited to 'src/test/ui/lto/debuginfo-lto.rs')
-rw-r--r-- | src/test/ui/lto/debuginfo-lto.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/lto/debuginfo-lto.rs b/src/test/ui/lto/debuginfo-lto.rs new file mode 100644 index 000000000..43f75b034 --- /dev/null +++ b/src/test/ui/lto/debuginfo-lto.rs @@ -0,0 +1,25 @@ +// run-pass +// This test case makes sure that we don't run into LLVM's dreaded +// "possible ODR violation" assertion when compiling with LTO + Debuginfo. +// It covers cases that have traditionally been prone to cause this error. +// If new cases emerge, add them to this file. + +// aux-build:debuginfo-lto-aux.rs +// compile-flags: -C lto -g +// no-prefer-dynamic +// ignore-asmjs wasm2js does not support source maps yet + +extern crate debuginfo_lto_aux; + +fn some_fn(x: i32) -> i32 { + x + 1 +} + +fn main() { + let i = 0; + let _ = debuginfo_lto_aux::mk_struct_with_lt(&i); + let _ = debuginfo_lto_aux::mk_regular_struct(1); + let _ = debuginfo_lto_aux::take_fn(some_fn, 1); + let _ = debuginfo_lto_aux::with_closure(22); + let _ = debuginfo_lto_aux::generic_fn(0f32); +} |