]> git.lizzy.rs Git - rust.git/blob - tests/debuginfo/lexical-scopes-in-block-expression.rs
Merge commit '7d53619064ab7045c383644cb445052d2a3d46db' into sync_cg_clif-2023-02-09
[rust.git] / tests / debuginfo / lexical-scopes-in-block-expression.rs
1 // min-lldb-version: 310
2 // ignore-gdb // Test temporarily ignored due to debuginfo tests being disabled, see PR 47155
3
4 // compile-flags:-g
5
6 // === GDB TESTS ===================================================================================
7
8 // gdb-command:run
9
10 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
11 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
12 // gdb-check:$1 = 0
13
14 // STRUCT EXPRESSION
15 // gdb-command:print val
16 // gdb-check:$2 = -1
17 // gdb-command:print ten
18 // gdb-check:$3 = 10
19 // gdb-command:continue
20
21 // gdb-command:print val
22 // gdb-check:$4 = 11
23 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
24 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
25 // gdb-check:$5 = 1
26 // gdb-command:print ten
27 // gdb-check:$6 = 10
28 // gdb-command:continue
29
30 // gdb-command:print val
31 // gdb-check:$7 = -1
32 // gdb-command:print ten
33 // gdb-check:$8 = 10
34 // gdb-command:continue
35
36 // FUNCTION CALL
37 // gdb-command:print val
38 // gdb-check:$9 = -1
39 // gdb-command:print ten
40 // gdb-check:$10 = 10
41 // gdb-command:continue
42
43 // gdb-command:print val
44 // gdb-check:$11 = 12
45 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
46 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
47 // gdb-check:$12 = 2
48 // gdb-command:print ten
49 // gdb-check:$13 = 10
50 // gdb-command:continue
51
52 // gdb-command:print val
53 // gdb-check:$14 = -1
54 // gdb-command:print ten
55 // gdb-check:$15 = 10
56 // gdb-command:continue
57
58 // TUPLE EXPRESSION
59 // gdb-command:print val
60 // gdb-check:$16 = -1
61 // gdb-command:print ten
62 // gdb-check:$17 = 10
63 // gdb-command:continue
64
65 // gdb-command:print val
66 // gdb-check:$18 = 13
67 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
68 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
69 // gdb-check:$19 = 3
70 // gdb-command:print ten
71 // gdb-check:$20 = 10
72 // gdb-command:continue
73
74 // gdb-command:print val
75 // gdb-check:$21 = -1
76 // gdb-command:print ten
77 // gdb-check:$22 = 10
78 // gdb-command:continue
79
80 // VEC EXPRESSION
81 // gdb-command:print val
82 // gdb-check:$23 = -1
83 // gdb-command:print ten
84 // gdb-check:$24 = 10
85 // gdb-command:continue
86
87 // gdb-command:print val
88 // gdb-check:$25 = 14
89 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
90 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
91 // gdb-check:$26 = 4
92 // gdb-command:print ten
93 // gdb-check:$27 = 10
94 // gdb-command:continue
95
96 // gdb-command:print val
97 // gdb-check:$28 = -1
98 // gdb-command:print ten
99 // gdb-check:$29 = 10
100 // gdb-command:continue
101
102 // REPEAT VEC EXPRESSION
103 // gdb-command:print val
104 // gdb-check:$30 = -1
105 // gdb-command:print ten
106 // gdb-check:$31 = 10
107 // gdb-command:continue
108
109 // gdb-command:print val
110 // gdb-check:$32 = 15
111 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
112 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
113 // gdb-check:$33 = 5
114 // gdb-command:print ten
115 // gdb-check:$34 = 10
116 // gdb-command:continue
117
118 // gdb-command:print val
119 // gdb-check:$35 = -1
120 // gdb-command:print ten
121 // gdb-check:$36 = 10
122 // gdb-command:continue
123
124 // ASSIGNMENT EXPRESSION
125 // gdb-command:print val
126 // gdb-check:$37 = -1
127 // gdb-command:print ten
128 // gdb-check:$38 = 10
129 // gdb-command:continue
130
131 // gdb-command:print val
132 // gdb-check:$39 = 16
133 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
134 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
135 // gdb-check:$40 = 6
136 // gdb-command:print ten
137 // gdb-check:$41 = 10
138 // gdb-command:continue
139
140 // gdb-command:print val
141 // gdb-check:$42 = -1
142 // gdb-command:print ten
143 // gdb-check:$43 = 10
144 // gdb-command:continue
145
146
147 // ARITHMETIC EXPRESSION
148 // gdb-command:print val
149 // gdb-check:$44 = -1
150 // gdb-command:print ten
151 // gdb-check:$45 = 10
152 // gdb-command:continue
153
154 // gdb-command:print val
155 // gdb-check:$46 = 17
156 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
157 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
158 // gdb-check:$47 = 7
159 // gdb-command:print ten
160 // gdb-check:$48 = 10
161 // gdb-command:continue
162
163 // gdb-command:print val
164 // gdb-check:$49 = -1
165 // gdb-command:print ten
166 // gdb-check:$50 = 10
167 // gdb-command:continue
168
169 // INDEX EXPRESSION
170 // gdb-command:print val
171 // gdb-check:$51 = -1
172 // gdb-command:print ten
173 // gdb-check:$52 = 10
174 // gdb-command:continue
175
176 // gdb-command:print val
177 // gdb-check:$53 = 18
178 // gdbg-command:print 'lexical_scopes_in_block_expression::MUT_INT'
179 // gdbr-command:print lexical_scopes_in_block_expression::MUT_INT
180 // gdb-check:$54 = 8
181 // gdb-command:print ten
182 // gdb-check:$55 = 10
183 // gdb-command:continue
184
185 // gdb-command:print val
186 // gdb-check:$56 = -1
187 // gdb-command:print ten
188 // gdb-check:$57 = 10
189 // gdb-command:continue
190
191
192 // === LLDB TESTS ==================================================================================
193
194 // lldb-command:run
195
196 // STRUCT EXPRESSION
197 // lldb-command:print val
198 // lldbg-check:[...]$0 = -1
199 // lldbr-check:(i32) val = -1
200 // lldb-command:print ten
201 // lldbg-check:[...]$1 = 10
202 // lldbr-check:(isize) ten = 10
203 // lldb-command:continue
204
205 // lldb-command:print val
206 // lldbg-check:[...]$2 = 11
207 // lldbr-check:(isize) val = 11
208 // lldb-command:print ten
209 // lldbg-check:[...]$3 = 10
210 // lldbr-check:(isize) ten = 10
211 // lldb-command:continue
212
213 // lldb-command:print val
214 // lldbg-check:[...]$4 = -1
215 // lldbr-check:(i32) val = -1
216 // lldb-command:print ten
217 // lldbg-check:[...]$5 = 10
218 // lldbr-check:(isize) ten = 10
219 // lldb-command:continue
220
221 // FUNCTION CALL
222 // lldb-command:print val
223 // lldbg-check:[...]$6 = -1
224 // lldbr-check:(i32) val = -1
225 // lldb-command:print ten
226 // lldbg-check:[...]$7 = 10
227 // lldbr-check:(isize) ten = 10
228 // lldb-command:continue
229
230 // lldb-command:print val
231 // lldbg-check:[...]$8 = 12
232 // lldbr-check:(isize) val = 12
233 // lldb-command:print ten
234 // lldbg-check:[...]$9 = 10
235 // lldbr-check:(isize) ten = 10
236 // lldb-command:continue
237
238 // lldb-command:print val
239 // lldbg-check:[...]$10 = -1
240 // lldbr-check:(i32) val = -1
241 // lldb-command:print ten
242 // lldbg-check:[...]$11 = 10
243 // lldbr-check:(isize) ten = 10
244 // lldb-command:continue
245
246 // TUPLE EXPRESSION
247 // lldb-command:print val
248 // lldbg-check:[...]$12 = -1
249 // lldbr-check:(i32) val = -1
250 // lldb-command:print ten
251 // lldbg-check:[...]$13 = 10
252 // lldbr-check:(isize) ten = 10
253 // lldb-command:continue
254
255 // lldb-command:print val
256 // lldbg-check:[...]$14 = 13
257 // lldbr-check:(isize) val = 13
258 // lldb-command:print ten
259 // lldbg-check:[...]$15 = 10
260 // lldbr-check:(isize) ten = 10
261 // lldb-command:continue
262
263 // lldb-command:print val
264 // lldbg-check:[...]$16 = -1
265 // lldbr-check:(i32) val = -1
266 // lldb-command:print ten
267 // lldbg-check:[...]$17 = 10
268 // lldbr-check:(isize) ten = 10
269 // lldb-command:continue
270
271 // VEC EXPRESSION
272 // lldb-command:print val
273 // lldbg-check:[...]$18 = -1
274 // lldbr-check:(i32) val = -1
275 // lldb-command:print ten
276 // lldbg-check:[...]$19 = 10
277 // lldbr-check:(isize) ten = 10
278 // lldb-command:continue
279
280 // lldb-command:print val
281 // lldbg-check:[...]$20 = 14
282 // lldbr-check:(isize) val = 14
283 // lldb-command:print ten
284 // lldbg-check:[...]$21 = 10
285 // lldbr-check:(isize) ten = 10
286 // lldb-command:continue
287
288 // lldb-command:print val
289 // lldbg-check:[...]$22 = -1
290 // lldbr-check:(i32) val = -1
291 // lldb-command:print ten
292 // lldbg-check:[...]$23 = 10
293 // lldbr-check:(isize) ten = 10
294 // lldb-command:continue
295
296 // REPEAT VEC EXPRESSION
297 // lldb-command:print val
298 // lldbg-check:[...]$24 = -1
299 // lldbr-check:(i32) val = -1
300 // lldb-command:print ten
301 // lldbg-check:[...]$25 = 10
302 // lldbr-check:(isize) ten = 10
303 // lldb-command:continue
304
305 // lldb-command:print val
306 // lldbg-check:[...]$26 = 15
307 // lldbr-check:(isize) val = 15
308 // lldb-command:print ten
309 // lldbg-check:[...]$27 = 10
310 // lldbr-check:(isize) ten = 10
311 // lldb-command:continue
312
313 // lldb-command:print val
314 // lldbg-check:[...]$28 = -1
315 // lldbr-check:(i32) val = -1
316 // lldb-command:print ten
317 // lldbg-check:[...]$29 = 10
318 // lldbr-check:(isize) ten = 10
319 // lldb-command:continue
320
321 // ASSIGNMENT EXPRESSION
322 // lldb-command:print val
323 // lldbg-check:[...]$30 = -1
324 // lldbr-check:(i32) val = -1
325 // lldb-command:print ten
326 // lldbg-check:[...]$31 = 10
327 // lldbr-check:(isize) ten = 10
328 // lldb-command:continue
329
330 // lldb-command:print val
331 // lldbg-check:[...]$32 = 16
332 // lldbr-check:(isize) val = 16
333 // lldb-command:print ten
334 // lldbg-check:[...]$33 = 10
335 // lldbr-check:(isize) ten = 10
336 // lldb-command:continue
337
338 // lldb-command:print val
339 // lldbg-check:[...]$34 = -1
340 // lldbr-check:(i32) val = -1
341 // lldb-command:print ten
342 // lldbg-check:[...]$35 = 10
343 // lldbr-check:(isize) ten = 10
344 // lldb-command:continue
345
346
347 // ARITHMETIC EXPRESSION
348 // lldb-command:print val
349 // lldbg-check:[...]$36 = -1
350 // lldbr-check:(i32) val = -1
351 // lldb-command:print ten
352 // lldbg-check:[...]$37 = 10
353 // lldbr-check:(isize) ten = 10
354 // lldb-command:continue
355
356 // lldb-command:print val
357 // lldbg-check:[...]$38 = 17
358 // lldbr-check:(isize) val = 17
359 // lldb-command:print ten
360 // lldbg-check:[...]$39 = 10
361 // lldbr-check:(isize) ten = 10
362 // lldb-command:continue
363
364 // lldb-command:print val
365 // lldbg-check:[...]$40 = -1
366 // lldbr-check:(i32) val = -1
367 // lldb-command:print ten
368 // lldbg-check:[...]$41 = 10
369 // lldbr-check:(isize) ten = 10
370 // lldb-command:continue
371
372 // INDEX EXPRESSION
373 // lldb-command:print val
374 // lldbg-check:[...]$42 = -1
375 // lldbr-check:(i32) val = -1
376 // lldb-command:print ten
377 // lldbg-check:[...]$43 = 10
378 // lldbr-check:(isize) ten = 10
379 // lldb-command:continue
380
381 // lldb-command:print val
382 // lldbg-check:[...]$44 = 18
383 // lldbr-check:(isize) val = 18
384 // lldb-command:print ten
385 // lldbg-check:[...]$45 = 10
386 // lldbr-check:(isize) ten = 10
387 // lldb-command:continue
388
389 // lldb-command:print val
390 // lldbg-check:[...]$46 = -1
391 // lldbr-check:(i32) val = -1
392 // lldb-command:print ten
393 // lldbg-check:[...]$47 = 10
394 // lldbr-check:(isize) ten = 10
395 // lldb-command:continue
396
397 #![allow(unused_variables)]
398 #![allow(unused_assignments)]
399 #![feature(omit_gdb_pretty_printer_section)]
400 #![omit_gdb_pretty_printer_section]
401
402 static mut MUT_INT: isize = 0;
403
404 struct Point {
405     x: isize,
406     y: isize
407 }
408
409 fn a_function(x: isize) -> isize {
410     x + 1
411 }
412
413 fn main() {
414
415     let val = -1;
416     let ten = 10;
417
418     // surrounded by struct expression
419     let point = Point {
420         x: {
421             zzz(); // #break
422             sentinel();
423
424             let val = ten + 1;
425             unsafe {MUT_INT = 1;};
426
427             zzz(); // #break
428             sentinel();
429
430             val
431         },
432         y: 10
433     };
434
435     zzz(); // #break
436     sentinel();
437
438     // surrounded by function call
439     let _ = a_function({
440         zzz(); // #break
441         sentinel();
442
443         let val = ten + 2;
444         unsafe {MUT_INT = 2;};
445
446         zzz(); // #break
447         sentinel();
448
449         val
450     });
451
452     zzz(); // #break
453     sentinel();
454
455
456     // surrounded by tup
457     let _ = ({
458         zzz(); // #break
459         sentinel();
460
461         let val = ten + 3;
462         unsafe {MUT_INT = 3;};
463
464         zzz(); // #break
465         sentinel();
466
467         val
468     }, 0);
469
470     zzz(); // #break
471     sentinel();
472
473     // surrounded by vec
474     let _ = [{
475         zzz(); // #break
476         sentinel();
477
478         let val = ten + 4;
479         unsafe {MUT_INT = 4;};
480
481         zzz(); // #break
482         sentinel();
483
484         val
485     }, 0, 0];
486
487     zzz(); // #break
488     sentinel();
489
490     // surrounded by repeat vec
491     let _ = [{
492         zzz(); // #break
493         sentinel();
494
495         let val = ten + 5;
496         unsafe {MUT_INT = 5;};
497
498         zzz(); // #break
499         sentinel();
500
501         val
502     }; 10];
503
504     zzz(); // #break
505     sentinel();
506
507     // assignment expression
508     let mut var = 0;
509     var = {
510         zzz(); // #break
511         sentinel();
512
513         let val = ten + 6;
514         unsafe {MUT_INT = 6;};
515
516         zzz(); // #break
517         sentinel();
518
519         val
520     };
521
522     zzz(); // #break
523     sentinel();
524
525     // arithmetic expression
526     var = 10 + -{
527         zzz(); // #break
528         sentinel();
529
530         let val = ten + 7;
531         unsafe {MUT_INT = 7;};
532
533         zzz(); // #break
534         sentinel();
535
536         val
537     } * 5;
538
539     zzz(); // #break
540     sentinel();
541
542     // index expression
543     let a_vector = [10; 20];
544     let _ = a_vector[{
545         zzz(); // #break
546         sentinel();
547
548         let val = ten + 8;
549         unsafe {MUT_INT = 8;};
550
551         zzz(); // #break
552         sentinel();
553
554         val as usize
555     }];
556
557     zzz(); // #break
558     sentinel();
559 }
560
561 fn zzz() {()}
562 fn sentinel() {()}