2 // ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
3 // min-lldb-version: 310
7 // === GDB TESTS ===================================================================================
9 // gdbg-command:print 'c_style_enum::SINGLE_VARIANT'
10 // gdbr-command:print c_style_enum::SINGLE_VARIANT
11 // gdbg-check:$1 = TheOnlyVariant
12 // gdbr-check:$1 = c_style_enum::SingleVariant::TheOnlyVariant
14 // gdbg-command:print 'c_style_enum::AUTO_ONE'
15 // gdbr-command:print c_style_enum::AUTO_ONE
16 // gdbg-check:$2 = One
17 // gdbr-check:$2 = c_style_enum::AutoDiscriminant::One
19 // gdbg-command:print 'c_style_enum::AUTO_TWO'
20 // gdbr-command:print c_style_enum::AUTO_TWO
21 // gdbg-check:$3 = One
22 // gdbr-check:$3 = c_style_enum::AutoDiscriminant::One
24 // gdbg-command:print 'c_style_enum::AUTO_THREE'
25 // gdbr-command:print c_style_enum::AUTO_THREE
26 // gdbg-check:$4 = One
27 // gdbr-check:$4 = c_style_enum::AutoDiscriminant::One
29 // gdbg-command:print 'c_style_enum::MANUAL_ONE'
30 // gdbr-command:print c_style_enum::MANUAL_ONE
31 // gdbg-check:$5 = OneHundred
32 // gdbr-check:$5 = c_style_enum::ManualDiscriminant::OneHundred
34 // gdbg-command:print 'c_style_enum::MANUAL_TWO'
35 // gdbr-command:print c_style_enum::MANUAL_TWO
36 // gdbg-check:$6 = OneHundred
37 // gdbr-check:$6 = c_style_enum::ManualDiscriminant::OneHundred
39 // gdbg-command:print 'c_style_enum::MANUAL_THREE'
40 // gdbr-command:print c_style_enum::MANUAL_THREE
41 // gdbg-check:$7 = OneHundred
42 // gdbr-check:$7 = c_style_enum::ManualDiscriminant::OneHundred
46 // gdb-command:print auto_one
47 // gdbg-check:$8 = One
48 // gdbr-check:$8 = c_style_enum::AutoDiscriminant::One
50 // gdb-command:print auto_two
51 // gdbg-check:$9 = Two
52 // gdbr-check:$9 = c_style_enum::AutoDiscriminant::Two
54 // gdb-command:print auto_three
55 // gdbg-check:$10 = Three
56 // gdbr-check:$10 = c_style_enum::AutoDiscriminant::Three
58 // gdb-command:print manual_one_hundred
59 // gdbg-check:$11 = OneHundred
60 // gdbr-check:$11 = c_style_enum::ManualDiscriminant::OneHundred
62 // gdb-command:print manual_one_thousand
63 // gdbg-check:$12 = OneThousand
64 // gdbr-check:$12 = c_style_enum::ManualDiscriminant::OneThousand
66 // gdb-command:print manual_one_million
67 // gdbg-check:$13 = OneMillion
68 // gdbr-check:$13 = c_style_enum::ManualDiscriminant::OneMillion
70 // gdb-command:print single_variant
71 // gdbg-check:$14 = TheOnlyVariant
72 // gdbr-check:$14 = c_style_enum::SingleVariant::TheOnlyVariant
74 // gdbg-command:print 'c_style_enum::AUTO_TWO'
75 // gdbr-command:print AUTO_TWO
76 // gdbg-check:$15 = Two
77 // gdbr-check:$15 = c_style_enum::AutoDiscriminant::Two
79 // gdbg-command:print 'c_style_enum::AUTO_THREE'
80 // gdbr-command:print AUTO_THREE
81 // gdbg-check:$16 = Three
82 // gdbr-check:$16 = c_style_enum::AutoDiscriminant::Three
84 // gdbg-command:print 'c_style_enum::MANUAL_TWO'
85 // gdbr-command:print MANUAL_TWO
86 // gdbg-check:$17 = OneThousand
87 // gdbr-check:$17 = c_style_enum::ManualDiscriminant::OneThousand
89 // gdbg-command:print 'c_style_enum::MANUAL_THREE'
90 // gdbr-command:print MANUAL_THREE
91 // gdbg-check:$18 = OneMillion
92 // gdbr-check:$18 = c_style_enum::ManualDiscriminant::OneMillion
95 // === LLDB TESTS ==================================================================================
99 // lldb-command:print auto_one
100 // lldbg-check:[...]$0 = One
101 // lldbr-check:(c_style_enum::AutoDiscriminant) auto_one = c_style_enum::AutoDiscriminant::One
103 // lldb-command:print auto_two
104 // lldbg-check:[...]$1 = Two
105 // lldbr-check:(c_style_enum::AutoDiscriminant) auto_two = c_style_enum::AutoDiscriminant::Two
107 // lldb-command:print auto_three
108 // lldbg-check:[...]$2 = Three
109 // lldbr-check:(c_style_enum::AutoDiscriminant) auto_three = c_style_enum::AutoDiscriminant::Three
111 // lldb-command:print manual_one_hundred
112 // lldbg-check:[...]$3 = OneHundred
113 // lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_hundred = c_style_enum::ManualDiscriminant::OneHundred
115 // lldb-command:print manual_one_thousand
116 // lldbg-check:[...]$4 = OneThousand
117 // lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_thousand = c_style_enum::ManualDiscriminant::OneThousand
119 // lldb-command:print manual_one_million
120 // lldbg-check:[...]$5 = OneMillion
121 // lldbr-check:(c_style_enum::ManualDiscriminant) manual_one_million = c_style_enum::ManualDiscriminant::OneMillion
123 // lldb-command:print single_variant
124 // lldbg-check:[...]$6 = TheOnlyVariant
125 // lldbr-check:(c_style_enum::SingleVariant) single_variant = c_style_enum::SingleVariant::TheOnlyVariant
127 #![allow(unused_variables)]
129 #![feature(omit_gdb_pretty_printer_section)]
130 #![omit_gdb_pretty_printer_section]
132 use self::AutoDiscriminant
::{One, Two, Three}
;
133 use self::ManualDiscriminant
::{OneHundred, OneThousand, OneMillion}
;
134 use self::SingleVariant
::TheOnlyVariant
;
136 #[derive(Copy, Clone)]
137 enum AutoDiscriminant
{
143 #[derive(Copy, Clone)]
144 enum ManualDiscriminant
{
150 #[derive(Copy, Clone)]
156 static SINGLE_VARIANT
: SingleVariant
= TheOnlyVariant
;
158 static mut AUTO_ONE
: AutoDiscriminant
= One
;
159 static mut AUTO_TWO
: AutoDiscriminant
= One
;
160 static mut AUTO_THREE
: AutoDiscriminant
= One
;
162 static mut MANUAL_ONE
: ManualDiscriminant
= OneHundred
;
163 static mut MANUAL_TWO
: ManualDiscriminant
= OneHundred
;
164 static mut MANUAL_THREE
: ManualDiscriminant
= OneHundred
;
170 let auto_three
= Three
;
172 let manual_one_hundred
= OneHundred
;
173 let manual_one_thousand
= OneThousand
;
174 let manual_one_million
= OneMillion
;
176 let single_variant
= TheOnlyVariant
;
182 MANUAL_TWO
= OneThousand
;
183 MANUAL_THREE
= OneMillion
;
188 // Borrow to avoid an eager load of the constant value in the static.
189 let a
= &SINGLE_VARIANT
;
190 let a
= unsafe { AUTO_ONE }
;
191 let a
= unsafe { MANUAL_ONE }
;