|
1 | 1 | // only-cdb |
2 | | -// ignore-tidy-linelength |
3 | 2 | // compile-flags:-g |
4 | 3 |
|
5 | | -// This started failing recently. See https://github.com/rust-lang/rust/issues/88796 |
6 | | -// FIXME: fix and unignore this |
7 | | -// ignore-windows |
8 | | - |
9 | 4 | // cdb-command: g |
10 | 5 |
|
11 | | -// Note: The natvis used to visualize niche-layout enums don't work correctly in cdb |
12 | | -// so the best we can do is to make sure we are generating the right debuginfo. |
13 | | -// Therefore, we use the `!` [format specifier](https://docs.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2019#BKMK_Visual_Studio_2012_format_specifiers) |
14 | | -// to disable the natvis for a given expression. We also provide the `-r2` flag |
15 | | -// to expand the expression 2 levels. |
16 | | - |
17 | | -// cdb-command: dx -r2 a,! |
18 | | -// cdb-check:a,! [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
19 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Some] |
20 | | -// cdb-check: [+0x000] __0 : Low (0x2) [Type: msvc_pretty_enums::CStyleEnum] |
21 | | -// cdb-check: [+0x000] discriminant : 0x2 [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Discriminant$] |
22 | | - |
23 | | -// cdb-command: dx -r2 b,! |
24 | | -// cdb-check:b,! [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
25 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Some] |
26 | | -// cdb-check: [+0x000] __0 : 0x11 [Type: msvc_pretty_enums::CStyleEnum] |
27 | | -// cdb-check: [+0x000] discriminant : None (0x11) [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>::Discriminant$] |
28 | | - |
29 | | -// cdb-command: dx -r2 c,! |
30 | | -// cdb-check:c,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
31 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
32 | | -// cdb-check: [+0x000] my_data : 0x11 [Type: msvc_pretty_enums::CStyleEnum] |
33 | | -// cdb-check: [+0x000] discriminant : Tag1 (0x11) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
34 | | - |
35 | | -// cdb-command: dx -r2 d,! |
36 | | -// cdb-check:d,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
37 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
38 | | -// cdb-check: [+0x000] my_data : High (0x10) [Type: msvc_pretty_enums::CStyleEnum] |
39 | | -// cdb-check: [+0x000] discriminant : 0x10 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
40 | | - |
41 | | -// cdb-command: dx -r2 e,! |
42 | | -// cdb-check:e,! [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
43 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Data] |
44 | | -// cdb-check: [+0x000] my_data : 0x13 [Type: msvc_pretty_enums::CStyleEnum] |
45 | | -// cdb-check: [+0x000] discriminant : Tag2 (0x13) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>::Discriminant$] |
46 | | - |
47 | | -// cdb-command: dx -r2 f,! |
48 | | -// cdb-check:f,! [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
49 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Some] |
50 | | -// cdb-check: [+0x000] __0 : 0x[...] : 0x1 [Type: unsigned int *] |
51 | | -// cdb-check: [+0x000] discriminant : 0x[...] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Discriminant$] |
52 | | - |
53 | | -// cdb-command: dx -r2 g,! |
54 | | -// cdb-check:g,! [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
55 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Some] |
56 | | -// cdb-check: [+0x000] __0 : 0x0 [Type: unsigned int *] |
57 | | -// cdb-check: [+0x000] discriminant : None (0x0) [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>::Discriminant$] |
58 | | - |
59 | | -// cdb-command: dx -r2 h,! |
60 | | -// cdb-check:h,! : Some [Type: enum$<core::option::Option<u32> >] |
61 | | -// cdb-check: [+0x000] variant0 [Type: enum$<core::option::Option<u32> >::None] |
62 | | -// cdb-check: [+0x000] variant1 [Type: enum$<core::option::Option<u32> >::Some] |
63 | | -// cdb-check: [+0x004] __0 : 0xc [Type: unsigned int] |
64 | | -// cdb-check: [+0x000] discriminant : Some (0x1) [Type: core::option::Option] |
| 6 | +// cdb-command: dx a |
| 7 | +// cdb-check:a : Some({...}) [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 8 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 9 | +// cdb-check: [variant] : Some |
| 10 | +// cdb-check: [+0x000] __0 : Low (0x2) [Type: msvc_pretty_enums::CStyleEnum] |
| 11 | + |
| 12 | +// cdb-command: dx b |
| 13 | +// cdb-check:b : None [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 14 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<enum$<msvc_pretty_enums::CStyleEnum> >, 2, 16, Some>] |
| 15 | +// cdb-check: [variant] : None |
| 16 | + |
| 17 | +// cdb-command: dx c |
| 18 | +// cdb-check:c : Tag1 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 19 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 20 | +// cdb-check: [variant] : Tag1 |
| 21 | + |
| 22 | +// cdb-command: dx d |
| 23 | +// cdb-check:d : Data({...}) [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 24 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 25 | +// cdb-check: [variant] : Data |
| 26 | +// cdb-check: [+0x000] my_data : High (0x10) [Type: msvc_pretty_enums::CStyleEnum] |
| 27 | + |
| 28 | +// cdb-command: dx e |
| 29 | +// cdb-check:e : Tag2 [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 30 | +// cdb-check: [<Raw View>] [Type: enum$<msvc_pretty_enums::NicheLayoutEnum, 2, 16, Data>] |
| 31 | +// cdb-check: [variant] : Tag2 |
| 32 | + |
| 33 | +// cdb-command: dx f |
| 34 | +// cdb-check:f : Some({...}) [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 35 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 36 | +// cdb-check: [variant] : Some |
| 37 | +// cdb-check: [+0x000] __0 : 0x[...] : 0x1 [Type: unsigned int *] |
| 38 | + |
| 39 | +// cdb-command: dx g |
| 40 | +// cdb-check:g : None [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 41 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<ref$<u32> >, 1, [...], Some>] |
| 42 | +// cdb-check: [variant] : None |
65 | 43 |
|
66 | 44 | // cdb-command: dx h |
67 | 45 | // cdb-check:h : Some [Type: enum$<core::option::Option<u32> >] |
68 | 46 | // cdb-check: [<Raw View>] [Type: enum$<core::option::Option<u32> >] |
69 | 47 | // cdb-check: [variant] : Some |
70 | 48 | // cdb-check: [+0x004] __0 : 0xc [Type: unsigned int] |
71 | 49 |
|
72 | | -// cdb-command: dx -r2 i,! |
73 | | -// cdb-check:i,! : None [Type: enum$<core::option::Option<u32> >] |
74 | | -// cdb-check: [+0x000] variant0 [Type: enum$<core::option::Option<u32> >::None] |
75 | | -// cdb-check: [+0x000] variant1 [Type: enum$<core::option::Option<u32> >::Some] |
76 | | -// cdb-check: [+0x004] __0 : 0x[...] [Type: unsigned int] |
77 | | -// cdb-check: [+0x000] discriminant : None (0x0) [Type: core::option::Option] |
78 | | - |
79 | 50 | // cdb-command: dx i |
80 | 51 | // cdb-check:i : None [Type: enum$<core::option::Option<u32> >] |
81 | 52 | // cdb-check: [<Raw View>] [Type: enum$<core::option::Option<u32> >] |
|
84 | 55 | // cdb-command: dx j |
85 | 56 | // cdb-check:j : High (0x10) [Type: msvc_pretty_enums::CStyleEnum] |
86 | 57 |
|
87 | | -// cdb-command: dx -r2 k,! |
88 | | -// cdb-check:k,! [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
89 | | -// cdb-check: [+0x000] dataful_variant [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>::Some] |
90 | | -// cdb-check: [+0x000] __0 [Type: alloc::string::String] |
91 | | -// cdb-check: [+0x000] discriminant : 0x[...] [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>::Discriminant$] |
92 | | - |
93 | | -// cdb-command: dx -r2 l,! |
94 | | -// cdb-check:l,! : $T2 [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
95 | | -// cdb-check: [+0x000] Ok [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>::Ok] |
96 | | -// cdb-check: [+0x000] __0 : 0x2a [Type: unsigned int] |
| 58 | +// cdb-command: dx k |
| 59 | +// cdb-check:k : Some({...}) [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
| 60 | +// cdb-check: [<Raw View>] [Type: enum$<core::option::Option<alloc::string::String>, 1, [...], Some>] |
| 61 | +// cdb-check: [variant] : Some |
| 62 | +// cdb-check: [+0x000] __0 : "IAMA optional string!" [Type: alloc::string::String] |
| 63 | + |
| 64 | +// cdb-command: dx l |
| 65 | +// cdb-check:l : Ok [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
| 66 | +// cdb-check: [<Raw View>] [Type: enum$<core::result::Result<u32,enum$<msvc_pretty_enums::Empty> >, Ok>] |
| 67 | +// cdb-check: [variant] : Ok |
| 68 | +// cdb-check: [+0x000] __0 : 0x2a [Type: unsigned int] |
97 | 69 |
|
98 | 70 | pub enum CStyleEnum { |
99 | 71 | Low = 2, |
|
0 commit comments