about summary refs log tree commit diff
path: root/tests/debuginfo/struct-namespace.rs
diff options
context:
space:
mode:
authorAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-05 09:13:28 +0100
committerAlbert Larsan <74931857+albertlarsan68@users.noreply.github.com>2023-01-11 09:32:08 +0000
commitcf2dff2b1e3fa55fa5415d524200070d0d7aacfe (patch)
tree40a88d9a46aaf3e8870676eb2538378b75a263eb /tests/debuginfo/struct-namespace.rs
parentca855e6e42787ecd062d81d53336fe6788ef51a9 (diff)
downloadrust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.tar.gz
rust-cf2dff2b1e3fa55fa5415d524200070d0d7aacfe.zip
Move /src/test to /tests
Diffstat (limited to 'tests/debuginfo/struct-namespace.rs')
-rw-r--r--tests/debuginfo/struct-namespace.rs64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/debuginfo/struct-namespace.rs b/tests/debuginfo/struct-namespace.rs
new file mode 100644
index 00000000000..81752c26980
--- /dev/null
+++ b/tests/debuginfo/struct-namespace.rs
@@ -0,0 +1,64 @@
+// ignore-gdb
+// compile-flags:-g
+// min-lldb-version: 310
+
+// Check that structs get placed in the correct namespace
+
+// lldb-command:run
+// lldb-command:p struct1
+// lldbg-check:(struct_namespace::Struct1) $0 = [...]
+// lldbr-check:(struct_namespace::Struct1) struct1 = Struct1 { a: 0, b: 1 }
+// lldb-command:p struct2
+// lldbg-check:(struct_namespace::Struct2) $1 = [...]
+// lldbr-check:(struct_namespace::Struct2) struct2 = { = 2 }
+
+// lldb-command:p mod1_struct1
+// lldbg-check:(struct_namespace::mod1::Struct1) $2 = [...]
+// lldbr-check:(struct_namespace::mod1::Struct1) mod1_struct1 = Struct1 { a: 3, b: 4 }
+// lldb-command:p mod1_struct2
+// lldbg-check:(struct_namespace::mod1::Struct2) $3 = [...]
+// lldbr-check:(struct_namespace::mod1::Struct2) mod1_struct2 = { = 5 }
+
+#![allow(unused_variables)]
+#![allow(dead_code)]
+#![feature(omit_gdb_pretty_printer_section)]
+#![omit_gdb_pretty_printer_section]
+
+struct Struct1 {
+    a: u32,
+    b: u64,
+}
+
+struct Struct2(u32);
+
+mod mod1 {
+
+    pub struct Struct1 {
+        pub a: u32,
+        pub b: u64,
+    }
+
+    pub struct Struct2(pub u32);
+}
+
+
+fn main() {
+    let struct1 = Struct1 {
+        a: 0,
+        b: 1,
+    };
+
+    let struct2 = Struct2(2);
+
+    let mod1_struct1 = mod1::Struct1 {
+        a: 3,
+        b: 4,
+    };
+
+    let mod1_struct2 = mod1::Struct2(5);
+
+    zzz(); // #break
+}
+
+#[inline(never)]
+fn zzz() {()}