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