about summary refs log tree commit diff
path: root/tests/assembly-llvm/dwarf-mixed-versions-lto.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/assembly-llvm/dwarf-mixed-versions-lto.rs')
-rw-r--r--tests/assembly-llvm/dwarf-mixed-versions-lto.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/assembly-llvm/dwarf-mixed-versions-lto.rs b/tests/assembly-llvm/dwarf-mixed-versions-lto.rs
new file mode 100644
index 00000000000..9910a6e2f5f
--- /dev/null
+++ b/tests/assembly-llvm/dwarf-mixed-versions-lto.rs
@@ -0,0 +1,20 @@
+// This test ensures that if LTO occurs between crates with different DWARF versions, we
+// will choose the highest DWARF version for the final binary. This matches Clang's behavior.
+// Note: `.2byte` directive is used on MIPS.
+
+//@ only-linux
+//@ aux-build:dwarf-mixed-versions-lto-aux.rs
+//@ compile-flags: -C lto -g -Cdwarf-version=5
+//@ assembly-output: emit-asm
+//@ no-prefer-dynamic
+
+extern crate dwarf_mixed_versions_lto_aux;
+
+fn main() {
+    dwarf_mixed_versions_lto_aux::check_is_even(&0);
+}
+
+// CHECK: .section .debug_info
+// CHECK-NOT: {{\.(short|hword|2byte)}} 2
+// CHECK-NOT: {{\.(short|hword|2byte)}} 4
+// CHECK: {{\.(short|hword|2byte)}} 5