]> git.lizzy.rs Git - rust.git/blob - tests/debuginfo/numeric-types.rs
Merge commit '7d53619064ab7045c383644cb445052d2a3d46db' into sync_cg_clif-2023-02-09
[rust.git] / tests / debuginfo / numeric-types.rs
1 // compile-flags:-g
2
3 // min-gdb-version: 8.1
4 // ignore-windows-gnu // emit_debug_gdb_scripts is disabled on Windows
5
6 // Tests the visualizations for `NonZero{I,U}{8,16,32,64,128,size}`, `Wrapping<T>` and
7 // `Atomic{Bool,I8,I16,I32,I64,Isize,U8,U16,U32,U64,Usize}` located in `libcore.natvis`.
8
9 // === CDB TESTS ==================================================================================
10 // cdb-command: g
11
12 // cdb-command: dx nz_i8
13 // cdb-check:nz_i8            : 11 [Type: core::num::nonzero::NonZeroI8]
14 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroI8]
15
16 // cdb-command: dx nz_i16
17 // cdb-check:nz_i16           : 22 [Type: core::num::nonzero::NonZeroI16]
18 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroI16]
19
20 // cdb-command: dx nz_i32
21 // cdb-check:nz_i32           : 33 [Type: core::num::nonzero::NonZeroI32]
22 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroI32]
23
24 // cdb-command: dx nz_i64
25 // cdb-check:nz_i64           : 44 [Type: core::num::nonzero::NonZeroI64]
26 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroI64]
27
28 // 128-bit integers don't seem to work in CDB
29 // cdb-command: dx nz_i128
30 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroI128]
31
32 // cdb-command: dx nz_isize
33 // cdb-check:nz_isize         : 66 [Type: core::num::nonzero::NonZeroIsize]
34 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroIsize]
35
36 // cdb-command: dx nz_u8
37 // cdb-check:nz_u8            : 0x4d [Type: core::num::nonzero::NonZeroU8]
38 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroU8]
39
40 // cdb-command: dx nz_u16
41 // cdb-check:nz_u16           : 0x58 [Type: core::num::nonzero::NonZeroU16]
42 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroU16]
43
44 // cdb-command: dx nz_u32
45 // cdb-check:nz_u32           : 0x63 [Type: core::num::nonzero::NonZeroU32]
46 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroU32]
47
48 // cdb-command: dx nz_u64
49 // cdb-check:nz_u64           : 0x64 [Type: core::num::nonzero::NonZeroU64]
50 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroU64]
51
52 // 128-bit integers don't seem to work in CDB
53 // cdb-command: dx nz_u128
54 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroU128]
55
56 // cdb-command: dx nz_usize
57 // cdb-check:nz_usize         : 0x7a [Type: core::num::nonzero::NonZeroUsize]
58 // cdb-check:    [<Raw View>]     [Type: core::num::nonzero::NonZeroUsize]
59
60 // cdb-command: dx w_i8
61 // cdb-check:w_i8             : 10 [Type: core::num::wrapping::Wrapping<i8>]
62 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<i8>]
63
64 // cdb-command: dx w_i16
65 // cdb-check:w_i16            : 20 [Type: core::num::wrapping::Wrapping<i16>]
66 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<i16>]
67
68 // cdb-command: dx w_i32
69 // cdb-check:w_i32            : 30 [Type: core::num::wrapping::Wrapping<i32>]
70 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<i32>]
71
72 // cdb-command: dx w_i64
73 // cdb-check:w_i64            : 40 [Type: core::num::wrapping::Wrapping<i64>]
74 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<i64>]
75
76 // 128-bit integers don't seem to work in CDB
77 // cdb-command: dx w_i128
78 // cdb-check:w_i128           [Type: core::num::wrapping::Wrapping<i128>]
79 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<i128>]
80
81 // cdb-command: dx w_isize
82 // cdb-check:w_isize          : 60 [Type: core::num::wrapping::Wrapping<isize>]
83 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<isize>]
84
85 // cdb-command: dx w_u8
86 // cdb-check:w_u8             : 0x46 [Type: core::num::wrapping::Wrapping<u8>]
87 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<u8>]
88
89 // cdb-command: dx w_u16
90 // cdb-check:w_u16            : 0x50 [Type: core::num::wrapping::Wrapping<u16>]
91 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<u16>]
92
93 // cdb-command: dx w_u32
94 // cdb-check:w_u32            : 0x5a [Type: core::num::wrapping::Wrapping<u32>]
95 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<u32>]
96
97 // cdb-command: dx w_u64
98 // cdb-check:w_u64            : 0x64 [Type: core::num::wrapping::Wrapping<u64>]
99 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<u64>]
100
101 // 128-bit integers don't seem to work in CDB
102 // cdb-command: dx w_u128
103 // cdb-check:w_u128           [Type: core::num::wrapping::Wrapping<u128>]
104 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<u128>]
105
106 // cdb-command: dx w_usize
107 // cdb-check:w_usize          : 0x78 [Type: core::num::wrapping::Wrapping<usize>]
108 // cdb-check:    [<Raw View>]     [Type: core::num::wrapping::Wrapping<usize>]
109
110 // cdb-command: dx a_bool_t
111 // cdb-check:a_bool_t         : true [Type: core::sync::atomic::AtomicBool]
112 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicBool]
113
114 // cdb-command: dx a_bool_f
115 // cdb-check:a_bool_f         : false [Type: core::sync::atomic::AtomicBool]
116 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicBool]
117
118 // cdb-command: dx a_i8
119 // cdb-check:a_i8             : 2 [Type: core::sync::atomic::AtomicI8]
120 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicI8]
121
122 // cdb-command: dx a_i16
123 // cdb-check:a_i16            : 4 [Type: core::sync::atomic::AtomicI16]
124 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicI16]
125
126 // cdb-command: dx a_i32
127 // cdb-check:a_i32            : 8 [Type: core::sync::atomic::AtomicI32]
128 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicI32]
129
130 // cdb-command: dx a_i64
131 // cdb-check:a_i64            : 16 [Type: core::sync::atomic::AtomicI64]
132 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicI64]
133
134 // cdb-command: dx a_isize
135 // cdb-check:a_isize          : 32 [Type: core::sync::atomic::AtomicIsize]
136 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicIsize]
137
138 // cdb-command: dx a_u8
139 // cdb-check:a_u8             : 0x40 [Type: core::sync::atomic::AtomicU8]
140 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicU8]
141
142 // cdb-command: dx a_u16
143 // cdb-check:a_u16            : 0x80 [Type: core::sync::atomic::AtomicU16]
144 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicU16]
145
146 // cdb-command: dx a_u32
147 // cdb-check:a_u32            : 0x100 [Type: core::sync::atomic::AtomicU32]
148 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicU32]
149
150 // cdb-command: dx a_u64
151 // cdb-check:a_u64            : 0x200 [Type: core::sync::atomic::AtomicU64]
152 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicU64]
153
154 // cdb-command: dx a_usize
155 // cdb-check:a_usize          : 0x400 [Type: core::sync::atomic::AtomicUsize]
156 // cdb-check:    [<Raw View>]     [Type: core::sync::atomic::AtomicUsize]
157
158
159 // === GDB TESTS ===================================================================================
160
161 // gdb-command:run
162
163 // gdb-command:print/d nz_i8
164 // gdb-check:[...]$1 = 11
165
166 // gdb-command:print nz_i16
167 // gdb-check:[...]$2 = 22
168
169 // gdb-command:print nz_i32
170 // gdb-check:[...]$3 = 33
171
172 // gdb-command:print nz_i64
173 // gdb-check:[...]$4 = 44
174
175 // gdb-command:print nz_i128
176 // gdb-check:[...]$5 = 55
177
178 // gdb-command:print nz_isize
179 // gdb-check:[...]$6 = 66
180
181 // gdb-command:print/d nz_u8
182 // gdb-check:[...]$7 = 77
183
184 // gdb-command:print nz_u16
185 // gdb-check:[...]$8 = 88
186
187 // gdb-command:print nz_u32
188 // gdb-check:[...]$9 = 99
189
190 // gdb-command:print nz_u64
191 // gdb-check:[...]$10 = 100
192
193 // gdb-command:print nz_u128
194 // gdb-check:[...]$11 = 111
195
196 // gdb-command:print nz_usize
197 // gdb-check:[...]$12 = 122
198
199
200
201 // === LLDB TESTS ==================================================================================
202
203 // lldb-command:run
204
205 // lldb-command:print/d nz_i8
206 // lldb-check:[...]$0 = 11 { __0 = 11 }
207
208 // lldb-command:print nz_i16
209 // lldb-check:[...]$1 = 22 { __0 = 22 }
210
211 // lldb-command:print nz_i32
212 // lldb-check:[...]$2 = 33 { __0 = 33 }
213
214 // lldb-command:print nz_i64
215 // lldb-check:[...]$3 = 44 { __0 = 44 }
216
217 // lldb-command:print nz_i128
218 // lldb-check:[...]$4 = 55 { __0 = 55 }
219
220 // lldb-command:print nz_isize
221 // lldb-check:[...]$5 = 66 { __0 = 66 }
222
223 // lldb-command:print/d nz_u8
224 // lldb-check:[...]$6 = 77 { __0 = 77 }
225
226 // lldb-command:print nz_u16
227 // lldb-check:[...]$7 = 88 { __0 = 88 }
228
229 // lldb-command:print nz_u32
230 // lldb-check:[...]$8 = 99 { __0 = 99 }
231
232 // lldb-command:print nz_u64
233 // lldb-check:[...]$9 = 100 { __0 = 100 }
234
235 // lldb-command:print nz_u128
236 // lldb-check:[...]$10 = 111 { __0 = 111 }
237
238 // lldb-command:print nz_usize
239 // lldb-check:[...]$11 = 122 { __0 = 122 }
240
241
242 use std::num::*;
243 use std::sync::atomic::*;
244
245 fn main() {
246     let nz_i8 = NonZeroI8::new(11).unwrap();
247     let nz_i16 = NonZeroI16::new(22).unwrap();
248     let nz_i32 = NonZeroI32::new(33).unwrap();
249     let nz_i64 = NonZeroI64::new(44).unwrap();
250     let nz_i128 = NonZeroI128::new(55).unwrap();
251     let nz_isize = NonZeroIsize::new(66).unwrap();
252
253     let nz_u8 = NonZeroU8::new(77).unwrap();
254     let nz_u16 = NonZeroU16::new(88).unwrap();
255     let nz_u32 = NonZeroU32::new(99).unwrap();
256     let nz_u64 = NonZeroU64::new(100).unwrap();
257     let nz_u128 = NonZeroU128::new(111).unwrap();
258     let nz_usize = NonZeroUsize::new(122).unwrap();
259
260     let w_i8 = Wrapping(10i8);
261     let w_i16 = Wrapping(20i16);
262     let w_i32 = Wrapping(30i32);
263     let w_i64 = Wrapping(40i64);
264     let w_i128 = Wrapping(50i128);
265     let w_isize = Wrapping(60isize);
266
267     let w_u8 = Wrapping(70u8);
268     let w_u16 = Wrapping(80u16);
269     let w_u32 = Wrapping(90u32);
270     let w_u64 = Wrapping(100u64);
271     let w_u128 = Wrapping(110u128);
272     let w_usize = Wrapping(120usize);
273
274     let a_bool_t = AtomicBool::new(true);
275     let a_bool_f = AtomicBool::new(false);
276
277     let a_i8 = AtomicI8::new(2);
278     let a_i16 = AtomicI16::new(4);
279     let a_i32 = AtomicI32::new(8);
280     let a_i64 = AtomicI64::new(16);
281     let a_isize = AtomicIsize::new(32);
282
283     let a_u8 = AtomicU8::new(64);
284     let a_u16 = AtomicU16::new(128);
285     let a_u32 = AtomicU32::new(256);
286     let a_u64 = AtomicU64::new(512);
287     let a_usize = AtomicUsize::new(1024);
288
289     zzz(); // #break
290 }
291
292 fn zzz() { }