]> git.lizzy.rs Git - rust.git/blob - tests/debuginfo/lexical-scope-in-unconditional-loop.rs
Rollup merge of #107446 - clubby789:rustc-parse-diag-migrate, r=compiler-errors
[rust.git] / tests / debuginfo / lexical-scope-in-unconditional-loop.rs
1 // min-lldb-version: 310
2
3 // compile-flags:-g
4
5 // === GDB TESTS ===================================================================================
6
7 // gdb-command:run
8
9 // FIRST ITERATION
10 // gdb-command:print x
11 // gdb-check:$1 = 0
12 // gdb-command:continue
13
14 // gdb-command:print x
15 // gdb-check:$2 = 1
16 // gdb-command:continue
17
18 // gdb-command:print x
19 // gdb-check:$3 = 101
20 // gdb-command:continue
21
22 // gdb-command:print x
23 // gdb-check:$4 = 101
24 // gdb-command:continue
25
26 // gdb-command:print x
27 // gdb-check:$5 = -987
28 // gdb-command:continue
29
30 // gdb-command:print x
31 // gdb-check:$6 = 101
32 // gdb-command:continue
33
34
35 // SECOND ITERATION
36 // gdb-command:print x
37 // gdb-check:$7 = 1
38 // gdb-command:continue
39
40 // gdb-command:print x
41 // gdb-check:$8 = 2
42 // gdb-command:continue
43
44 // gdb-command:print x
45 // gdb-check:$9 = 102
46 // gdb-command:continue
47
48 // gdb-command:print x
49 // gdb-check:$10 = 102
50 // gdb-command:continue
51
52 // gdb-command:print x
53 // gdb-check:$11 = -987
54 // gdb-command:continue
55
56 // gdb-command:print x
57 // gdb-check:$12 = 102
58 // gdb-command:continue
59
60 // gdb-command:print x
61 // gdb-check:$13 = 2
62 // gdb-command:continue
63
64
65 // === LLDB TESTS ==================================================================================
66
67 // lldb-command:run
68
69 // FIRST ITERATION
70 // lldb-command:print x
71 // lldbg-check:[...]$0 = 0
72 // lldbr-check:(i32) x = 0
73 // lldb-command:continue
74
75 // lldb-command:print x
76 // lldbg-check:[...]$1 = 1
77 // lldbr-check:(i32) x = 1
78 // lldb-command:continue
79
80 // lldb-command:print x
81 // lldbg-check:[...]$2 = 101
82 // lldbr-check:(i32) x = 101
83 // lldb-command:continue
84
85 // lldb-command:print x
86 // lldbg-check:[...]$3 = 101
87 // lldbr-check:(i32) x = 101
88 // lldb-command:continue
89
90 // lldb-command:print x
91 // lldbg-check:[...]$4 = -987
92 // lldbr-check:(i32) x = -987
93 // lldb-command:continue
94
95 // lldb-command:print x
96 // lldbg-check:[...]$5 = 101
97 // lldbr-check:(i32) x = 101
98 // lldb-command:continue
99
100
101 // SECOND ITERATION
102 // lldb-command:print x
103 // lldbg-check:[...]$6 = 1
104 // lldbr-check:(i32) x = 1
105 // lldb-command:continue
106
107 // lldb-command:print x
108 // lldbg-check:[...]$7 = 2
109 // lldbr-check:(i32) x = 2
110 // lldb-command:continue
111
112 // lldb-command:print x
113 // lldbg-check:[...]$8 = 102
114 // lldbr-check:(i32) x = 102
115 // lldb-command:continue
116
117 // lldb-command:print x
118 // lldbg-check:[...]$9 = 102
119 // lldbr-check:(i32) x = 102
120 // lldb-command:continue
121
122 // lldb-command:print x
123 // lldbg-check:[...]$10 = -987
124 // lldbr-check:(i32) x = -987
125 // lldb-command:continue
126
127 // lldb-command:print x
128 // lldbg-check:[...]$11 = 102
129 // lldbr-check:(i32) x = 102
130 // lldb-command:continue
131
132 // lldb-command:print x
133 // lldbg-check:[...]$12 = 2
134 // lldbr-check:(i32) x = 2
135 // lldb-command:continue
136
137 #![feature(omit_gdb_pretty_printer_section)]
138 #![omit_gdb_pretty_printer_section]
139
140 fn main() {
141
142     let mut x = 0;
143
144     loop {
145         if x >= 2 {
146             break;
147         }
148
149         zzz(); // #break
150         sentinel();
151
152         x += 1;
153         zzz(); // #break
154         sentinel();
155
156         // Shadow x
157         let x = x + 100;
158         zzz(); // #break
159         sentinel();
160
161         // open scope within loop's top level scope
162         {
163             zzz(); // #break
164             sentinel();
165
166             let x = -987;
167
168             zzz(); // #break
169             sentinel();
170         }
171
172         // Check that we get the x before the inner scope again
173         zzz(); // #break
174         sentinel();
175     }
176
177     zzz(); // #break
178     sentinel();
179 }
180
181 fn zzz() {()}
182 fn sentinel() {()}