about summary refs log tree commit diff
path: root/src/test/debuginfo
diff options
context:
space:
mode:
authorMark Simulacrum <mark.simulacrum@gmail.com>2017-05-19 14:16:26 -0600
committerGitHub <noreply@github.com>2017-05-19 14:16:26 -0600
commit040cd6d15dcc8c1f66726293d52df93abd2e4b76 (patch)
tree58817f4ea75abe5821f5df9fc2b039be1bf9de84 /src/test/debuginfo
parent5ded76ca214a9786582e5dd0cb81408006daeef3 (diff)
parentb5acbd3f0360b221e9885be4c99957272b0ede82 (diff)
downloadrust-040cd6d15dcc8c1f66726293d52df93abd2e4b76.tar.gz
rust-040cd6d15dcc8c1f66726293d52df93abd2e4b76.zip
Rollup merge of #42100 - michaelwoerister:fix-osx-multi-cgu-debuginfo, r=jdm
debuginfo: Generate unique DW_AT_names for compilation units to work around OSX linker bug

This should fix issue #39160 and does not seem to cause any problems.

cc @tromey, @Manishearth

r? @jdm
Diffstat (limited to 'src/test/debuginfo')
-rw-r--r--src/test/debuginfo/multi-cgu.rs67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/test/debuginfo/multi-cgu.rs b/src/test/debuginfo/multi-cgu.rs
new file mode 100644
index 00000000000..f4f9f92396f
--- /dev/null
+++ b/src/test/debuginfo/multi-cgu.rs
@@ -0,0 +1,67 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+
+// This test case makes sure that we get proper break points for binaries
+// compiled with multiple codegen units. (see #39160)
+
+
+// min-lldb-version: 310
+
+// compile-flags:-g -Ccodegen-units=2
+
+// === GDB TESTS ===============================================================
+
+// gdb-command:run
+
+// gdb-command:print xxx
+// gdb-check:$1 = 12345
+// gdb-command:continue
+
+// gdb-command:print yyy
+// gdb-check:$2 = 67890
+// gdb-command:continue
+
+
+// === LLDB TESTS ==============================================================
+
+// lldb-command:run
+
+// lldb-command:print xxx
+// lldb-check:[...]$0 = 12345
+// lldb-command:continue
+
+// lldb-command:print yyy
+// lldb-check:[...]$1 = 67890
+// lldb-command:continue
+
+
+#![feature(omit_gdb_pretty_printer_section)]
+#![omit_gdb_pretty_printer_section]
+
+mod a {
+    pub fn foo(xxx: u32) {
+        super::_zzz(); // #break
+    }
+}
+
+mod b {
+    pub fn bar(yyy: u64) {
+        super::_zzz(); // #break
+    }
+}
+
+fn main() {
+    a::foo(12345);
+    b::bar(67890);
+}
+
+#[inline(never)]
+fn _zzz() {}