diff options
| author | bors <bors@rust-lang.org> | 2015-01-25 18:46:33 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-25 18:46:33 +0000 |
| commit | c80e556e159af38f86eea5ee2ba796d7c724c92b (patch) | |
| tree | 96e77c61152fa22f7d7144da19064c738d9a0df7 /src/test/debuginfo | |
| parent | d15192317aa025ff06faa56ca00950fb7ce6ff4b (diff) | |
| parent | 75ad1161dd598ba0e61b9215a08216e744dd9f4c (diff) | |
| download | rust-c80e556e159af38f86eea5ee2ba796d7c724c92b.tar.gz rust-c80e556e159af38f86eea5ee2ba796d7c724c92b.zip | |
Auto merge of #21519 - michaelwoerister:misc, r=eddyb
Two minor improvements that have been on my TODO list for a while: * Clang uses a size of `-1` for arrays of unknown size and we should do that too as it will tell LLVM to omit the size information in debuginfo. * There was no LLDB test case for handling the optimized enum representation introduced by @luqmana. This PR finally adds one.
Diffstat (limited to 'src/test/debuginfo')
| -rw-r--r-- | src/test/debuginfo/option-like-enum.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/debuginfo/option-like-enum.rs b/src/test/debuginfo/option-like-enum.rs index 71c235c878c..fdfbcda7421 100644 --- a/src/test/debuginfo/option-like-enum.rs +++ b/src/test/debuginfo/option-like-enum.rs @@ -36,6 +36,12 @@ // gdb-command:print void_droid_gdb->internals // gdb-check:$6 = (isize *) 0x0 +// gdb-command:print nested_non_zero_yep +// gdb-check:$7 = {RUST$ENCODED$ENUM$1$2$Nope = {10.5, {a = 10, b = 20, c = [...]}}} + +// gdb-command:print nested_non_zero_nope +// gdb-check:$8 = {RUST$ENCODED$ENUM$1$2$Nope = {[...], {a = [...], b = [...], c = 0x0}}} + // gdb-command:continue @@ -67,6 +73,12 @@ // lldb-command:print none_str // lldb-check:[...]$7 = None +// lldb-command:print nested_non_zero_yep +// lldb-check:[...]$8 = Yep(10.5, NestedNonZeroField { a: 10, b: 20, c: &[...] }) + +// lldb-command:print nested_non_zero_nope +// lldb-check:[...]$9 = Nope + #![omit_gdb_pretty_printer_section] @@ -102,6 +114,17 @@ struct NamedFieldsRepr<'a> { internals: &'a isize } +struct NestedNonZeroField<'a> { + a: u16, + b: u32, + c: &'a char, +} + +enum NestedNonZero<'a> { + Yep(f64, NestedNonZeroField<'a>), + Nope +} + fn main() { let some_str: Option<&'static str> = Some("abc"); @@ -124,6 +147,17 @@ fn main() { let void_droid = NamedFields::Void; let void_droid_gdb: &NamedFieldsRepr = unsafe { std::mem::transmute(&NamedFields::Void) }; + let x = 'x'; + let nested_non_zero_yep = NestedNonZero::Yep( + 10.5, + NestedNonZeroField { + a: 10, + b: 20, + c: &x + }); + + let nested_non_zero_nope = NestedNonZero::Nope; + zzz(); // #break } |
