]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | // min-lldb-version: 310 |
2 | ||
3 | // compile-flags:-g | |
4 | ||
5 | // === GDB TESTS =================================================================================== | |
6 | ||
7 | // gdb-command:run | |
8 | ||
9 | // gdb-command:print a | |
10 | // gdb-check:$1 = 1 | |
11 | // gdb-command:print b | |
12 | // gdb-check:$2 = false | |
13 | ||
14 | // gdb-command:print c | |
15 | // gdb-check:$3 = 2 | |
16 | // gdb-command:print d | |
17 | // gdb-check:$4 = 3 | |
18 | // gdb-command:print e | |
19 | // gdb-check:$5 = 4 | |
20 | ||
21 | // gdb-command:print f | |
22 | // gdb-check:$6 = 5 | |
23 | // gdb-command:print g | |
c30ab7b3 SL |
24 | // gdbg-check:$7 = {__0 = 6, __1 = 7} |
25 | // gdbr-check:$7 = (6, 7) | |
1a4d82fc JJ |
26 | |
27 | // gdb-command:print h | |
28 | // gdb-check:$8 = 8 | |
29 | // gdb-command:print i | |
c30ab7b3 SL |
30 | // gdbg-check:$9 = {a = 9, b = 10} |
31 | // gdbr-check:$9 = destructured_local::Struct {a: 9, b: 10} | |
1a4d82fc JJ |
32 | // gdb-command:print j |
33 | // gdb-check:$10 = 11 | |
34 | ||
35 | // gdb-command:print k | |
36 | // gdb-check:$11 = 12 | |
37 | // gdb-command:print l | |
38 | // gdb-check:$12 = 13 | |
39 | ||
40 | // gdb-command:print m | |
41 | // gdb-check:$13 = 14 | |
42 | // gdb-command:print n | |
43 | // gdb-check:$14 = 16 | |
44 | ||
45 | // gdb-command:print o | |
46 | // gdb-check:$15 = 18 | |
47 | ||
48 | // gdb-command:print p | |
49 | // gdb-check:$16 = 19 | |
50 | // gdb-command:print q | |
51 | // gdb-check:$17 = 20 | |
52 | // gdb-command:print r | |
c30ab7b3 SL |
53 | // gdbg-check:$18 = {a = 21, b = 22} |
54 | // gdbr-check:$18 = destructured_local::Struct {a: 21, b: 22} | |
1a4d82fc JJ |
55 | |
56 | // gdb-command:print s | |
57 | // gdb-check:$19 = 24 | |
58 | // gdb-command:print t | |
59 | // gdb-check:$20 = 23 | |
60 | ||
61 | // gdb-command:print u | |
62 | // gdb-check:$21 = 25 | |
63 | // gdb-command:print v | |
64 | // gdb-check:$22 = 26 | |
65 | // gdb-command:print w | |
66 | // gdb-check:$23 = 27 | |
67 | // gdb-command:print x | |
68 | // gdb-check:$24 = 28 | |
69 | // gdb-command:print y | |
70 | // gdb-check:$25 = 29 | |
71 | // gdb-command:print z | |
72 | // gdb-check:$26 = 30 | |
73 | // gdb-command:print ae | |
74 | // gdb-check:$27 = 31 | |
75 | // gdb-command:print oe | |
76 | // gdb-check:$28 = 32 | |
77 | // gdb-command:print ue | |
78 | // gdb-check:$29 = 33 | |
79 | ||
80 | // gdb-command:print aa | |
c30ab7b3 SL |
81 | // gdbg-check:$30 = {__0 = 34, __1 = 35} |
82 | // gdbr-check:$30 = (34, 35) | |
1a4d82fc JJ |
83 | |
84 | // gdb-command:print bb | |
c30ab7b3 SL |
85 | // gdbg-check:$31 = {__0 = 36, __1 = 37} |
86 | // gdbr-check:$31 = (36, 37) | |
1a4d82fc JJ |
87 | |
88 | // gdb-command:print cc | |
89 | // gdb-check:$32 = 38 | |
90 | ||
91 | // gdb-command:print dd | |
c30ab7b3 SL |
92 | // gdbg-check:$33 = {__0 = 40, __1 = 41, __2 = 42} |
93 | // gdbr-check:$33 = (40, 41, 42) | |
1a4d82fc JJ |
94 | |
95 | // gdb-command:print *ee | |
c30ab7b3 SL |
96 | // gdbg-check:$34 = {__0 = 43, __1 = 44, __2 = 45} |
97 | // gdbr-check:$34 = (43, 44, 45) | |
1a4d82fc JJ |
98 | |
99 | // gdb-command:print *ff | |
100 | // gdb-check:$35 = 46 | |
101 | ||
102 | // gdb-command:print gg | |
c30ab7b3 SL |
103 | // gdbg-check:$36 = {__0 = 47, __1 = 48} |
104 | // gdbr-check:$36 = (47, 48) | |
1a4d82fc JJ |
105 | |
106 | // gdb-command:print *hh | |
107 | // gdb-check:$37 = 50 | |
108 | ||
109 | // gdb-command:print ii | |
110 | // gdb-check:$38 = 51 | |
111 | ||
112 | // gdb-command:print *jj | |
113 | // gdb-check:$39 = 52 | |
114 | ||
115 | // gdb-command:print kk | |
116 | // gdb-check:$40 = 53 | |
117 | ||
118 | // gdb-command:print ll | |
119 | // gdb-check:$41 = 54 | |
120 | ||
121 | // gdb-command:print mm | |
122 | // gdb-check:$42 = 55 | |
123 | ||
124 | // gdb-command:print *nn | |
125 | // gdb-check:$43 = 56 | |
126 | ||
127 | ||
128 | // === LLDB TESTS ================================================================================== | |
129 | ||
130 | // lldb-command:run | |
131 | ||
132 | // lldb-command:print a | |
0bf4aa26 XL |
133 | // lldbg-check:[...]$0 = 1 |
134 | // lldbr-check:(isize) a = 1 | |
1a4d82fc | 135 | // lldb-command:print b |
0bf4aa26 XL |
136 | // lldbg-check:[...]$1 = false |
137 | // lldbr-check:(bool) b = false | |
1a4d82fc JJ |
138 | |
139 | // lldb-command:print c | |
0bf4aa26 XL |
140 | // lldbg-check:[...]$2 = 2 |
141 | // lldbr-check:(isize) c = 2 | |
1a4d82fc | 142 | // lldb-command:print d |
0bf4aa26 XL |
143 | // lldbg-check:[...]$3 = 3 |
144 | // lldbr-check:(u16) d = 3 | |
1a4d82fc | 145 | // lldb-command:print e |
0bf4aa26 XL |
146 | // lldbg-check:[...]$4 = 4 |
147 | // lldbr-check:(u16) e = 4 | |
1a4d82fc JJ |
148 | |
149 | // lldb-command:print f | |
0bf4aa26 XL |
150 | // lldbg-check:[...]$5 = 5 |
151 | // lldbr-check:(isize) f = 5 | |
1a4d82fc | 152 | // lldb-command:print g |
f035d41b XL |
153 | // lldbg-check:[...]$6 = { 0 = 6 1 = 7 } |
154 | // lldbr-check:((u32, u32)) g = { 0 = 6 1 = 7 } | |
1a4d82fc JJ |
155 | |
156 | // lldb-command:print h | |
0bf4aa26 XL |
157 | // lldbg-check:[...]$7 = 8 |
158 | // lldbr-check:(i16) h = 8 | |
1a4d82fc | 159 | // lldb-command:print i |
f035d41b XL |
160 | // lldbg-check:[...]$8 = { a = 9 b = 10 } |
161 | // lldbr-check:(destructured_local::Struct) i = { a = 9 b = 10 } | |
1a4d82fc | 162 | // lldb-command:print j |
0bf4aa26 XL |
163 | // lldbg-check:[...]$9 = 11 |
164 | // lldbr-check:(i16) j = 11 | |
1a4d82fc JJ |
165 | |
166 | // lldb-command:print k | |
0bf4aa26 XL |
167 | // lldbg-check:[...]$10 = 12 |
168 | // lldbr-check:(i64) k = 12 | |
1a4d82fc | 169 | // lldb-command:print l |
0bf4aa26 XL |
170 | // lldbg-check:[...]$11 = 13 |
171 | // lldbr-check:(i32) l = 13 | |
1a4d82fc JJ |
172 | |
173 | // lldb-command:print m | |
0bf4aa26 XL |
174 | // lldbg-check:[...]$12 = 14 |
175 | // lldbr-check:(i32) m = 14 | |
1a4d82fc | 176 | // lldb-command:print n |
0bf4aa26 XL |
177 | // lldbg-check:[...]$13 = 16 |
178 | // lldbr-check:(i32) n = 16 | |
1a4d82fc JJ |
179 | |
180 | // lldb-command:print o | |
0bf4aa26 XL |
181 | // lldbg-check:[...]$14 = 18 |
182 | // lldbr-check:(i32) o = 18 | |
1a4d82fc JJ |
183 | |
184 | // lldb-command:print p | |
0bf4aa26 XL |
185 | // lldbg-check:[...]$15 = 19 |
186 | // lldbr-check:(i64) p = 19 | |
1a4d82fc | 187 | // lldb-command:print q |
0bf4aa26 XL |
188 | // lldbg-check:[...]$16 = 20 |
189 | // lldbr-check:(i32) q = 20 | |
1a4d82fc | 190 | // lldb-command:print r |
f035d41b XL |
191 | // lldbg-check:[...]$17 = { a = 21 b = 22 } |
192 | // lldbr-check:(destructured_local::Struct) r = { a = 21 b = 22 } | |
1a4d82fc JJ |
193 | |
194 | // lldb-command:print s | |
0bf4aa26 XL |
195 | // lldbg-check:[...]$18 = 24 |
196 | // lldbr-check:(i32) s = 24 | |
1a4d82fc | 197 | // lldb-command:print t |
0bf4aa26 XL |
198 | // lldbg-check:[...]$19 = 23 |
199 | // lldbr-check:(i64) t = 23 | |
1a4d82fc JJ |
200 | |
201 | // lldb-command:print u | |
0bf4aa26 XL |
202 | // lldbg-check:[...]$20 = 25 |
203 | // lldbr-check:(i32) u = 25 | |
1a4d82fc | 204 | // lldb-command:print v |
0bf4aa26 XL |
205 | // lldbg-check:[...]$21 = 26 |
206 | // lldbr-check:(i32) v = 26 | |
1a4d82fc | 207 | // lldb-command:print w |
0bf4aa26 XL |
208 | // lldbg-check:[...]$22 = 27 |
209 | // lldbr-check:(i32) w = 27 | |
1a4d82fc | 210 | // lldb-command:print x |
0bf4aa26 XL |
211 | // lldbg-check:[...]$23 = 28 |
212 | // lldbr-check:(i32) x = 28 | |
1a4d82fc | 213 | // lldb-command:print y |
0bf4aa26 XL |
214 | // lldbg-check:[...]$24 = 29 |
215 | // lldbr-check:(i64) y = 29 | |
1a4d82fc | 216 | // lldb-command:print z |
0bf4aa26 XL |
217 | // lldbg-check:[...]$25 = 30 |
218 | // lldbr-check:(i32) z = 30 | |
1a4d82fc | 219 | // lldb-command:print ae |
0bf4aa26 XL |
220 | // lldbg-check:[...]$26 = 31 |
221 | // lldbr-check:(i64) ae = 31 | |
1a4d82fc | 222 | // lldb-command:print oe |
0bf4aa26 XL |
223 | // lldbg-check:[...]$27 = 32 |
224 | // lldbr-check:(i32) oe = 32 | |
1a4d82fc | 225 | // lldb-command:print ue |
0bf4aa26 XL |
226 | // lldbg-check:[...]$28 = 33 |
227 | // lldbr-check:(i32) ue = 33 | |
1a4d82fc JJ |
228 | |
229 | // lldb-command:print aa | |
f035d41b XL |
230 | // lldbg-check:[...]$29 = { 0 = 34 1 = 35 } |
231 | // lldbr-check:((i32, i32)) aa = { 0 = 34 1 = 35 } | |
1a4d82fc JJ |
232 | |
233 | // lldb-command:print bb | |
f035d41b XL |
234 | // lldbg-check:[...]$30 = { 0 = 36 1 = 37 } |
235 | // lldbr-check:((i32, i32)) bb = { 0 = 36 1 = 37 } | |
1a4d82fc JJ |
236 | |
237 | // lldb-command:print cc | |
0bf4aa26 XL |
238 | // lldbg-check:[...]$31 = 38 |
239 | // lldbr-check:(i32) cc = 38 | |
1a4d82fc JJ |
240 | |
241 | // lldb-command:print dd | |
f035d41b XL |
242 | // lldbg-check:[...]$32 = { 0 = 40 1 = 41 2 = 42 } |
243 | // lldbr-check:((i32, i32, i32)) dd = { 0 = 40 1 = 41 2 = 42} | |
1a4d82fc JJ |
244 | |
245 | // lldb-command:print *ee | |
f035d41b XL |
246 | // lldbg-check:[...]$33 = { 0 = 43 1 = 44 2 = 45 } |
247 | // lldbr-check:((i32, i32, i32)) *ee = { 0 = 43 1 = 44 2 = 45} | |
1a4d82fc JJ |
248 | |
249 | // lldb-command:print *ff | |
0bf4aa26 XL |
250 | // lldbg-check:[...]$34 = 46 |
251 | // lldbr-check:(i32) *ff = 46 | |
1a4d82fc JJ |
252 | |
253 | // lldb-command:print gg | |
f035d41b XL |
254 | // lldbg-check:[...]$35 = { 0 = 47 1 = 48 } |
255 | // lldbr-check:((i32, i32)) gg = { 0 = 47 1 = 48 } | |
1a4d82fc JJ |
256 | |
257 | // lldb-command:print *hh | |
0bf4aa26 XL |
258 | // lldbg-check:[...]$36 = 50 |
259 | // lldbr-check:(i32) *hh = 50 | |
1a4d82fc JJ |
260 | |
261 | // lldb-command:print ii | |
0bf4aa26 XL |
262 | // lldbg-check:[...]$37 = 51 |
263 | // lldbr-check:(i32) ii = 51 | |
1a4d82fc JJ |
264 | |
265 | // lldb-command:print *jj | |
0bf4aa26 XL |
266 | // lldbg-check:[...]$38 = 52 |
267 | // lldbr-check:(i32) *jj = 52 | |
1a4d82fc JJ |
268 | |
269 | // lldb-command:print kk | |
0bf4aa26 XL |
270 | // lldbg-check:[...]$39 = 53 |
271 | // lldbr-check:(f64) kk = 53 | |
1a4d82fc JJ |
272 | |
273 | // lldb-command:print ll | |
0bf4aa26 XL |
274 | // lldbg-check:[...]$40 = 54 |
275 | // lldbr-check:(isize) ll = 54 | |
1a4d82fc JJ |
276 | |
277 | // lldb-command:print mm | |
0bf4aa26 XL |
278 | // lldbg-check:[...]$41 = 55 |
279 | // lldbr-check:(f64) mm = 55 | |
1a4d82fc JJ |
280 | |
281 | // lldb-command:print *nn | |
0bf4aa26 XL |
282 | // lldbg-check:[...]$42 = 56 |
283 | // lldbr-check:(isize) *nn = 56 | |
1a4d82fc JJ |
284 | |
285 | ||
286 | #![allow(unused_variables)] | |
85aaf69f | 287 | #![feature(box_patterns)] |
1a4d82fc | 288 | #![feature(box_syntax)] |
b039eaaf | 289 | #![feature(omit_gdb_pretty_printer_section)] |
1a4d82fc JJ |
290 | #![omit_gdb_pretty_printer_section] |
291 | ||
292 | use self::Univariant::Unit; | |
293 | ||
294 | struct Struct { | |
295 | a: i64, | |
296 | b: i32 | |
297 | } | |
298 | ||
299 | enum Univariant { | |
300 | Unit(i32) | |
301 | } | |
302 | ||
c34b1796 | 303 | struct TupleStruct (f64, isize); |
1a4d82fc JJ |
304 | |
305 | ||
306 | fn main() { | |
307 | // simple tuple | |
c34b1796 | 308 | let (a, b) : (isize, bool) = (1, false); |
1a4d82fc JJ |
309 | |
310 | // nested tuple | |
c34b1796 | 311 | let (c, (d, e)) : (isize, (u16, u16)) = (2, (3, 4)); |
1a4d82fc JJ |
312 | |
313 | // bind tuple-typed value to one name (destructure only first level) | |
c34b1796 | 314 | let (f, g) : (isize, (u32, u32)) = (5, (6, 7)); |
1a4d82fc JJ |
315 | |
316 | // struct as tuple element | |
317 | let (h, i, j) : (i16, Struct, i16) = (8, Struct { a: 9, b: 10 }, 11); | |
318 | ||
319 | // struct pattern | |
320 | let Struct { a: k, b: l } = Struct { a: 12, b: 13 }; | |
321 | ||
322 | // ignored tuple element | |
85aaf69f | 323 | let (m, _, n) = (14, 15, 16); |
1a4d82fc JJ |
324 | |
325 | // ignored struct field | |
326 | let Struct { b: o, .. } = Struct { a: 17, b: 18 }; | |
327 | ||
328 | // one struct destructured, one not | |
329 | let (Struct { a: p, b: q }, r) = (Struct { a: 19, b: 20 }, Struct { a: 21, b: 22 }); | |
330 | ||
331 | // different order of struct fields | |
332 | let Struct { b: s, a: t } = Struct { a: 23, b: 24 }; | |
333 | ||
334 | // complex nesting | |
335 | let ((u, v), ((w, (x, Struct { a: y, b: z})), Struct { a: ae, b: oe }), ue) = | |
85aaf69f | 336 | ((25, 26), ((27, (28, Struct { a: 29, b: 30})), Struct { a: 31, b: 32 }), 33); |
1a4d82fc JJ |
337 | |
338 | // reference | |
85aaf69f | 339 | let &aa = &(34, 35); |
1a4d82fc JJ |
340 | |
341 | // reference | |
85aaf69f | 342 | let &bb = &(36, 37); |
1a4d82fc JJ |
343 | |
344 | // contained reference | |
85aaf69f | 345 | let (&cc, _) = (&38, 39); |
1a4d82fc JJ |
346 | |
347 | // unique pointer | |
b039eaaf | 348 | let box dd = box (40, 41, 42); |
1a4d82fc JJ |
349 | |
350 | // ref binding | |
85aaf69f | 351 | let ref ee = (43, 44, 45); |
1a4d82fc JJ |
352 | |
353 | // ref binding in tuple | |
85aaf69f | 354 | let (ref ff, gg) = (46, (47, 48)); |
1a4d82fc JJ |
355 | |
356 | // ref binding in struct | |
357 | let Struct { b: ref hh, .. } = Struct { a: 49, b: 50 }; | |
358 | ||
359 | // univariant enum | |
360 | let Unit(ii) = Unit(51); | |
361 | ||
362 | // univariant enum with ref binding | |
363 | let &Unit(ref jj) = &Unit(52); | |
364 | ||
365 | // tuple struct | |
366 | let &TupleStruct(kk, ll) = &TupleStruct(53.0, 54); | |
367 | ||
368 | // tuple struct with ref binding | |
369 | let &TupleStruct(mm, ref nn) = &TupleStruct(55.0, 56); | |
370 | ||
371 | zzz(); // #break | |
372 | } | |
373 | ||
374 | fn zzz() { () } |