]> git.proxmox.com Git - rustc.git/blob - src/test/debuginfo/issue-22656.rs
Update unsuspicious file list
[rustc.git] / src / test / debuginfo / issue-22656.rs
1 // This test makes sure that the LLDB pretty printer does not throw an exception
2 // when trying to handle a Vec<> or anything else that contains zero-sized
3 // fields.
4
5 // min-lldb-version: 310
6 // ignore-gdb
7
8 // compile-flags:-g
9
10 // === LLDB TESTS ==================================================================================
11 // lldb-command:run
12
13 // lldb-command:print v
14 // lldbg-check:[...]$0 = size=3 { [0] = 1 [1] = 2 [2] = 3 }
15 // lldbr-check:(alloc::vec::Vec<i32>) v = size=3 { [0] = 1 [1] = 2 [2] = 3 }
16 // lldb-command:print zs
17 // lldbg-check:[...]$1 = { x = y = 123 z = w = 456 }
18 // lldbr-check:(issue_22656::StructWithZeroSizedField) zs = { x = y = 123 z = w = 456 }
19 // lldbr-command:continue
20
21 #![allow(unused_variables)]
22 #![allow(dead_code)]
23 #![feature(omit_gdb_pretty_printer_section)]
24 #![omit_gdb_pretty_printer_section]
25
26 struct ZeroSizedStruct;
27
28 struct StructWithZeroSizedField {
29 x: ZeroSizedStruct,
30 y: u32,
31 z: ZeroSizedStruct,
32 w: u64
33 }
34
35 fn main() {
36 let v = vec![1,2,3];
37
38 let zs = StructWithZeroSizedField {
39 x: ZeroSizedStruct,
40 y: 123,
41 z: ZeroSizedStruct,
42 w: 456
43 };
44
45 zzz(); // #break
46 }
47
48 fn zzz() { () }