| // This test makes sure that the LLDB pretty printer does not throw an exception | |
| // when trying to handle a Vec<> or anything else that contains zero-sized | |
| // fields. | |
| //@ ignore-gdb | |
| //@ compile-flags:-g | |
| //@ disable-gdb-pretty-printers | |
| // === LLDB TESTS ================================================================================== | |
| //@ lldb-command:run | |
| //@ lldb-command:v v | |
| //@ lldb-check:[...] size=3 { [0] = 1 [1] = 2 [2] = 3 } | |
| //@ lldb-command:v zs | |
| //@ lldb-check:[...] { x = y = 123 z = w = 456 } | |
| #![allow(unused_variables)] | |
| #![allow(dead_code)] | |
| struct ZeroSizedStruct; | |
| struct StructWithZeroSizedField { | |
| x: ZeroSizedStruct, | |
| y: u32, | |
| z: ZeroSizedStruct, | |
| w: u64 | |
| } | |
| fn main() { | |
| let v = vec![1,2,3]; | |
| let zs = StructWithZeroSizedField { | |
| x: ZeroSizedStruct, | |
| y: 123, | |
| z: ZeroSizedStruct, | |
| w: 456 | |
| }; | |
| zzz(); // #break | |
| } | |
| fn zzz() { () } |