]> git.proxmox.com Git - rustc.git/blame - src/test/debuginfo/simple-tuple.rs
New upstream version 1.14.0+dfsg1
[rustc.git] / src / test / debuginfo / simple-tuple.rs
CommitLineData
1a4d82fc
JJ
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
1a4d82fc
JJ
11// min-lldb-version: 310
12
13// compile-flags:-g
14
15// === GDB TESTS ===================================================================================
16
c30ab7b3
SL
17// there's no frame yet for gdb to reliably detect the language, set it explicitly
18// gdbr-command:set language rust
19
20// gdbg-command:print/d 'simple_tuple::NO_PADDING_8'
21// gdbr-command:print simple_tuple::NO_PADDING_8
22// gdbg-check:$1 = {__0 = -50, __1 = 50}
23// gdbr-check:$1 = (-50, 50)
24// gdbg-command:print 'simple_tuple::NO_PADDING_16'
25// gdbr-command:print simple_tuple::NO_PADDING_16
26// gdbg-check:$2 = {__0 = -1, __1 = 2, __2 = 3}
27// gdbr-check:$2 = (-1, 2, 3)
28// gdbg-command:print 'simple_tuple::NO_PADDING_32'
29// gdbr-command:print simple_tuple::NO_PADDING_32
30// gdbg-check:$3 = {__0 = 4, __1 = 5, __2 = 6}
31// gdbr-check:$3 = (4, 5, 6)
32// gdbg-command:print 'simple_tuple::NO_PADDING_64'
33// gdbr-command:print simple_tuple::NO_PADDING_64
34// gdbg-check:$4 = {__0 = 7, __1 = 8, __2 = 9}
35// gdbr-check:$4 = (7, 8, 9)
36
37// gdbg-command:print 'simple_tuple::INTERNAL_PADDING_1'
38// gdbr-command:print simple_tuple::INTERNAL_PADDING_1
39// gdbg-check:$5 = {__0 = 10, __1 = 11}
40// gdbr-check:$5 = (10, 11)
41// gdbg-command:print 'simple_tuple::INTERNAL_PADDING_2'
42// gdbr-command:print simple_tuple::INTERNAL_PADDING_2
43// gdbg-check:$6 = {__0 = 12, __1 = 13, __2 = 14, __3 = 15}
44// gdbr-check:$6 = (12, 13, 14, 15)
45
46// gdbg-command:print 'simple_tuple::PADDING_AT_END'
47// gdbr-command:print simple_tuple::PADDING_AT_END
48// gdbg-check:$7 = {__0 = 16, __1 = 17}
49// gdbr-check:$7 = (16, 17)
1a4d82fc
JJ
50
51// gdb-command:run
52
c30ab7b3
SL
53// gdbg-command:print/d noPadding8
54// gdbr-command:print noPadding8
55// gdbg-check:$8 = {__0 = -100, __1 = 100}
56// gdbr-check:$8 = (-100, 100)
1a4d82fc 57// gdb-command:print noPadding16
c30ab7b3
SL
58// gdbg-check:$9 = {__0 = 0, __1 = 1, __2 = 2}
59// gdbr-check:$9 = (0, 1, 2)
1a4d82fc 60// gdb-command:print noPadding32
c30ab7b3
SL
61// gdbg-check:$10 = {__0 = 3, __1 = 4.5, __2 = 5}
62// gdbr-check:$10 = (3, 4.5, 5)
1a4d82fc 63// gdb-command:print noPadding64
c30ab7b3
SL
64// gdbg-check:$11 = {__0 = 6, __1 = 7.5, __2 = 8}
65// gdbr-check:$11 = (6, 7.5, 8)
1a4d82fc
JJ
66
67// gdb-command:print internalPadding1
c30ab7b3
SL
68// gdbg-check:$12 = {__0 = 9, __1 = 10}
69// gdbr-check:$12 = (9, 10)
1a4d82fc 70// gdb-command:print internalPadding2
c30ab7b3
SL
71// gdbg-check:$13 = {__0 = 11, __1 = 12, __2 = 13, __3 = 14}
72// gdbr-check:$13 = (11, 12, 13, 14)
1a4d82fc
JJ
73
74// gdb-command:print paddingAtEnd
c30ab7b3
SL
75// gdbg-check:$14 = {__0 = 15, __1 = 16}
76// gdbr-check:$14 = (15, 16)
77
78// gdbg-command:print/d 'simple_tuple::NO_PADDING_8'
79// gdbr-command:print simple_tuple::NO_PADDING_8
80// gdbg-check:$15 = {__0 = -127, __1 = 127}
81// gdbr-check:$15 = (-127, 127)
82// gdbg-command:print 'simple_tuple::NO_PADDING_16'
83// gdbr-command:print simple_tuple::NO_PADDING_16
84// gdbg-check:$16 = {__0 = -10, __1 = 10, __2 = 9}
85// gdbr-check:$16 = (-10, 10, 9)
86// gdbg-command:print 'simple_tuple::NO_PADDING_32'
87// gdbr-command:print simple_tuple::NO_PADDING_32
88// gdbg-check:$17 = {__0 = 14, __1 = 15, __2 = 16}
89// gdbr-check:$17 = (14, 15, 16)
90// gdbg-command:print 'simple_tuple::NO_PADDING_64'
91// gdbr-command:print simple_tuple::NO_PADDING_64
92// gdbg-check:$18 = {__0 = 17, __1 = 18, __2 = 19}
93// gdbr-check:$18 = (17, 18, 19)
94
95// gdbg-command:print 'simple_tuple::INTERNAL_PADDING_1'
96// gdbr-command:print simple_tuple::INTERNAL_PADDING_1
97// gdbg-check:$19 = {__0 = 110, __1 = 111}
98// gdbr-check:$19 = (110, 111)
99// gdbg-command:print 'simple_tuple::INTERNAL_PADDING_2'
100// gdbr-command:print simple_tuple::INTERNAL_PADDING_2
101// gdbg-check:$20 = {__0 = 112, __1 = 113, __2 = 114, __3 = 115}
102// gdbr-check:$20 = (112, 113, 114, 115)
103
104// gdbg-command:print 'simple_tuple::PADDING_AT_END'
105// gdbr-command:print simple_tuple::PADDING_AT_END
106// gdbg-check:$21 = {__0 = 116, __1 = 117}
107// gdbr-check:$21 = (116, 117)
1a4d82fc
JJ
108
109
110// === LLDB TESTS ==================================================================================
111
112// lldb-command:run
113
114// lldb-command:print/d noPadding8
115// lldb-check:[...]$0 = (-100, 100)
116// lldb-command:print noPadding16
117// lldb-check:[...]$1 = (0, 1, 2)
118// lldb-command:print noPadding32
119// lldb-check:[...]$2 = (3, 4.5, 5)
120// lldb-command:print noPadding64
121// lldb-check:[...]$3 = (6, 7.5, 8)
122
123// lldb-command:print internalPadding1
124// lldb-check:[...]$4 = (9, 10)
125// lldb-command:print internalPadding2
126// lldb-check:[...]$5 = (11, 12, 13, 14)
127
128// lldb-command:print paddingAtEnd
129// lldb-check:[...]$6 = (15, 16)
130
131#![allow(unused_variables)]
132#![allow(dead_code)]
b039eaaf 133#![feature(omit_gdb_pretty_printer_section)]
1a4d82fc
JJ
134#![omit_gdb_pretty_printer_section]
135
136static mut NO_PADDING_8: (i8, u8) = (-50, 50);
137static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);
138
139static mut NO_PADDING_32: (i32, f32, u32) = (4, 5.0, 6);
140static mut NO_PADDING_64: (i64, f64, u64) = (7, 8.0, 9);
141
142static mut INTERNAL_PADDING_1: (i16, i32) = (10, 11);
143static mut INTERNAL_PADDING_2: (i16, i32, u32, u64) = (12, 13, 14, 15);
144
145static mut PADDING_AT_END: (i32, i16) = (16, 17);
146
147fn main() {
148 let noPadding8: (i8, u8) = (-100, 100);
149 let noPadding16: (i16, i16, u16) = (0, 1, 2);
150 let noPadding32: (i32, f32, u32) = (3, 4.5, 5);
151 let noPadding64: (i64, f64, u64) = (6, 7.5, 8);
152
153 let internalPadding1: (i16, i32) = (9, 10);
154 let internalPadding2: (i16, i32, u32, u64) = (11, 12, 13, 14);
155
156 let paddingAtEnd: (i32, i16) = (15, 16);
157
158 unsafe {
159 NO_PADDING_8 = (-127, 127);
160 NO_PADDING_16 = (-10, 10, 9);
161
162 NO_PADDING_32 = (14, 15.0, 16);
163 NO_PADDING_64 = (17, 18.0, 19);
164
165 INTERNAL_PADDING_1 = (110, 111);
166 INTERNAL_PADDING_2 = (112, 113, 114, 115);
167
168 PADDING_AT_END = (116, 117);
169 }
170
171 zzz(); // #break
172}
173
174fn zzz() {()}