From 612ded78e3275332e4b68391701a2866ca3689cc Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Thu, 8 Jan 2015 14:55:13 +0100 Subject: debuginfo: Extend option-like-enum test case to contain nested discriminants. --- src/test/debuginfo/option-like-enum.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/test/debuginfo') 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 } -- cgit 1.4.1-3-g733a5