]> git.lizzy.rs Git - rust.git/blob - tests/debuginfo/tuple-in-tuple.rs
Rollup merge of #107446 - clubby789:rustc-parse-diag-migrate, r=compiler-errors
[rust.git] / tests / debuginfo / tuple-in-tuple.rs
1 // min-lldb-version: 310
2
3 // compile-flags:-g
4
5 // === GDB TESTS ===================================================================================
6
7 // gdb-command:run
8
9 // gdb-command:print no_padding1
10 // gdbg-check:$1 = {__0 = {__0 = 0, __1 = 1}, __1 = 2, __2 = 3}
11 // gdbr-check:$1 = ((0, 1), 2, 3)
12 // gdb-command:print no_padding2
13 // gdbg-check:$2 = {__0 = 4, __1 = {__0 = 5, __1 = 6}, __2 = 7}
14 // gdbr-check:$2 = (4, (5, 6), 7)
15 // gdb-command:print no_padding3
16 // gdbg-check:$3 = {__0 = 8, __1 = 9, __2 = {__0 = 10, __1 = 11}}
17 // gdbr-check:$3 = (8, 9, (10, 11))
18
19 // gdb-command:print internal_padding1
20 // gdbg-check:$4 = {__0 = 12, __1 = {__0 = 13, __1 = 14}}
21 // gdbr-check:$4 = (12, (13, 14))
22 // gdb-command:print internal_padding2
23 // gdbg-check:$5 = {__0 = 15, __1 = {__0 = 16, __1 = 17}}
24 // gdbr-check:$5 = (15, (16, 17))
25
26 // gdb-command:print padding_at_end1
27 // gdbg-check:$6 = {__0 = 18, __1 = {__0 = 19, __1 = 20}}
28 // gdbr-check:$6 = (18, (19, 20))
29 // gdb-command:print padding_at_end2
30 // gdbg-check:$7 = {__0 = {__0 = 21, __1 = 22}, __1 = 23}
31 // gdbr-check:$7 = ((21, 22), 23)
32
33
34 // === LLDB TESTS ==================================================================================
35
36 // lldb-command:run
37
38 // lldb-command:print no_padding1
39 // lldbg-check:[...]$0 = { 0 = { 0 = 0 1 = 1 } 1 = 2 2 = 3 }
40 // lldbr-check:(((u32, u32), u32, u32)) no_padding1 = { 0 = { 0 = 0 1 = 1 } 1 = 2 2 = 3 }
41 // lldb-command:print no_padding2
42 // lldbg-check:[...]$1 = { 0 = 4 1 = { 0 = 5 1 = 6 } 2 = 7 }
43 // lldbr-check:((u32, (u32, u32), u32)) no_padding2 = { 0 = 4 1 = { 0 = 5 1 = 6 } 2 = 7 }
44 // lldb-command:print no_padding3
45 // lldbg-check:[...]$2 = { 0 = 8 1 = 9 2 = { 0 = 10 1 = 11 } }
46 // lldbr-check:((u32, u32, (u32, u32))) no_padding3 = { 0 = 8 1 = 9 2 = { 0 = 10 1 = 11 } }
47
48 // lldb-command:print internal_padding1
49 // lldbg-check:[...]$3 = { 0 = 12 1 = { 0 = 13 1 = 14 } }
50 // lldbr-check:((i16, (i32, i32))) internal_padding1 = { 0 = 12 1 = { 0 = 13 1 = 14 } }
51 // lldb-command:print internal_padding2
52 // lldbg-check:[...]$4 = { 0 = 15 1 = { 0 = 16 1 = 17 } }
53 // lldbr-check:((i16, (i16, i32))) internal_padding2 = { 0 = 15 1 = { 0 = 16 1 = 17 } }
54
55 // lldb-command:print padding_at_end1
56 // lldbg-check:[...]$5 = { 0 = 18 1 = { 0 = 19 1 = 20 } }
57 // lldbr-check:((i32, (i32, i16))) padding_at_end1 = { 0 = 18 1 = { 0 = 19 1 = 20 } }
58 // lldb-command:print padding_at_end2
59 // lldbg-check:[...]$6 = { 0 = { 0 = 21 1 = 22 } 1 = 23 }
60 // lldbr-check:(((i32, i16), i32)) padding_at_end2 = { 0 = { 0 = 21 1 = 22 } 1 = 23 }
61
62
63 // === CDB TESTS ==================================================================================
64
65 // cdb-command: g
66
67 // cdb-command:dx no_padding1,d
68 // cdb-check:no_padding1,d [...]: ((0, 1), 2, 3) [Type: tuple$<tuple$<u32,u32>,u32,u32>]
69 // cdb-check:[...][0]              : (0, 1) [Type: tuple$<u32,u32>]
70 // cdb-check:[...][1]              : 2 [Type: [...]]
71 // cdb-check:[...][2]              : 3 [Type: [...]]
72 // cdb-command:dx no_padding1.__0,d
73 // cdb-check:no_padding1.__0,d [...]: (0, 1) [Type: tuple$<u32,u32>]
74 // cdb-check:[...][0]              : 0 [Type: [...]]
75 // cdb-check:[...][1]              : 1 [Type: [...]]
76 // cdb-command:dx no_padding2,d
77 // cdb-check:no_padding2,d [...]: (4, (5, 6), 7) [Type: tuple$<u32,tuple$<u32,u32>,u32>]
78 // cdb-check:[...][0]              : 4 [Type: [...]]
79 // cdb-check:[...][1]              : (5, 6) [Type: tuple$<u32,u32>]
80 // cdb-check:[...][2]              : 7 [Type: [...]]
81 // cdb-command:dx no_padding2.__1,d
82 // cdb-check:no_padding2.__1,d [...]: (5, 6) [Type: tuple$<u32,u32>]
83 // cdb-check:[...][0]              : 5 [Type: [...]]
84 // cdb-check:[...][1]              : 6 [Type: [...]]
85 // cdb-command:dx no_padding3,d
86 // cdb-check:no_padding3,d [...]: (8, 9, (10, 11)) [Type: tuple$<u32,u32,tuple$<u32,u32> >]
87 // cdb-check:[...][0]              : 8 [Type: [...]]
88 // cdb-check:[...][1]              : 9 [Type: [...]]
89 // cdb-check:[...][2]              : (10, 11) [Type: tuple$<u32,u32>]
90 // cdb-command:dx no_padding3.__2,d
91 // cdb-check:no_padding3.__2,d [...]: (10, 11) [Type: tuple$<u32,u32>]
92 // cdb-check:[...][0]              : 10 [Type: [...]]
93 // cdb-check:[...][1]              : 11 [Type: [...]]
94
95 // cdb-command:dx internal_padding1,d
96 // cdb-check:internal_padding1,d [...]: (12, (13, 14)) [Type: tuple$<i16,tuple$<i32,i32> >]
97 // cdb-check:[...][0]              : 12 [Type: [...]]
98 // cdb-check:[...][1]              : (13, 14) [Type: tuple$<i32,i32>]
99 // cdb-command:dx internal_padding1.__1,d
100 // cdb-check:internal_padding1.__1,d [...]: (13, 14) [Type: tuple$<i32,i32>]
101 // cdb-check:[...][0]              : 13 [Type: [...]]
102 // cdb-check:[...][1]              : 14 [Type: [...]]
103 // cdb-command:dx internal_padding2,d
104 // cdb-check:internal_padding2,d [...]: (15, (16, 17)) [Type: tuple$<i16,tuple$<i16,i32> >]
105 // cdb-check:[...][0]              : 15 [Type: [...]]
106 // cdb-check:[...][1]              : (16, 17) [Type: tuple$<i16,i32>]
107 // cdb-command:dx internal_padding2.__1,d
108 // cdb-check:internal_padding2.__1,d [...]: (16, 17) [Type: tuple$<i16,i32>]
109 // cdb-check:[...][0]              : 16 [Type: [...]]
110 // cdb-check:[...][1]              : 17 [Type: [...]]
111
112 // cdb-command:dx padding_at_end1,d
113 // cdb-check:padding_at_end1,d [...]: (18, (19, 20)) [Type: tuple$<i32,tuple$<i32,i16> >]
114 // cdb-check:[...][0]              : 18 [Type: [...]]
115 // cdb-check:[...][1]              : (19, 20) [Type: tuple$<i32,i16>]
116 // cdb-command:dx padding_at_end1.__1,d
117 // cdb-check:padding_at_end1.__1,d [...][Type: tuple$<i32,i16>]
118 // cdb-check:[...][0]              : 19 [Type: [...]]
119 // cdb-check:[...][1]              : 20 [Type: [...]]
120 // cdb-command:dx padding_at_end2,d
121 // cdb-check:padding_at_end2,d [...]: ((21, 22), 23) [Type: tuple$<tuple$<i32,i16>,i32>]
122 // cdb-check:[...][0]              : (21, 22) [Type: tuple$<i32,i16>]
123 // cdb-check:[...][1]              : 23 [Type: [...]]
124 // cdb-command:dx padding_at_end2.__0,d
125 // cdb-check:padding_at_end2.__0,d [...]: (21, 22) [Type: tuple$<i32,i16>]
126 // cdb-check:[...][0]              : 21 [Type: [...]]
127 // cdb-check:[...][1]              : 22 [Type: [...]]
128
129 #![allow(unused_variables)]
130 #![feature(omit_gdb_pretty_printer_section)]
131 #![omit_gdb_pretty_printer_section]
132
133 fn main() {
134     let no_padding1: ((u32, u32), u32, u32) = ((0, 1), 2, 3);
135     let no_padding2: (u32, (u32, u32), u32) = (4, (5, 6), 7);
136     let no_padding3: (u32, u32, (u32, u32)) = (8, 9, (10, 11));
137
138     let internal_padding1: (i16, (i32, i32)) = (12, (13, 14));
139     let internal_padding2: (i16, (i16, i32)) = (15, (16, 17));
140
141     let padding_at_end1: (i32, (i32, i16)) = (18, (19, 20));
142     let padding_at_end2: ((i32, i16), i32) = ((21, 22), 23);
143
144     zzz(); // #break
145 }
146
147 fn zzz() {()}