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