|
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