|
16 | 16 | // gdbg-check:$3 = {pointer = [...], vtable = [...]}
|
17 | 17 | // gdbr-check:$3 = &unsized::Foo<dyn core::fmt::Debug> {pointer: [...], vtable: [...]}
|
18 | 18 |
|
| 19 | +// gdb-command:print _box |
| 20 | +// gdbg-check:$4 = {pointer = [...], vtable = [...]} |
| 21 | +// gdbr-check:$4 = alloc::boxed::Box<unsized::Foo<dyn core::fmt::Debug>, alloc::alloc::Global> {pointer: [...], vtable: [...]} |
| 22 | + |
19 | 23 | // gdb-command:print tuple_slice
|
20 |
| -// gdbg-check:$4 = {data_ptr = [...], length = 2} |
21 |
| -// gdbr-check:$4 = &(i32, i32, [i32]) {data_ptr: [...], length: 2} |
| 24 | +// gdbg-check:$5 = {data_ptr = [...], length = 2} |
| 25 | +// gdbr-check:$5 = &(i32, i32, [i32]) {data_ptr: [...], length: 2} |
22 | 26 |
|
23 | 27 | // gdb-command:print tuple_dyn
|
24 |
| -// gdbg-check:$5 = {pointer = [...], vtable = [...]} |
25 |
| -// gdbr-check:$5 = &(i32, i32, dyn core::fmt::Debug) {pointer: [...], vtable: [...]} |
| 28 | +// gdbg-check:$6 = {pointer = [...], vtable = [...]} |
| 29 | +// gdbr-check:$6 = &(i32, i32, dyn core::fmt::Debug) {pointer: [...], vtable: [...]} |
26 | 30 |
|
27 | 31 | // === CDB TESTS ===================================================================================
|
28 | 32 |
|
|
42 | 46 | // cdb-check: [+0x000] pointer : 0x[...] [Type: unsized::Foo<dyn$<core::fmt::Debug> > *]
|
43 | 47 | // cdb-check: [...] vtable : 0x[...] [Type: unsigned [...]int[...] (*)[3]]
|
44 | 48 |
|
| 49 | +// cdb-command:dx _box |
| 50 | +// cdb-check: |
| 51 | +// cdb-check:_box [Type: alloc::boxed::Box<unsized::Foo<dyn$<core::fmt::Debug> >,alloc::alloc::Global>] |
| 52 | +// cdb-check:[+0x000] pointer : 0x[...] [Type: unsized::Foo<dyn$<core::fmt::Debug> > *] |
| 53 | +// cdb-check:[...] vtable : 0x[...] [Type: unsigned [...]int[...] (*)[3]] |
| 54 | + |
45 | 55 | // cdb-command:dx tuple_slice
|
46 | 56 | // cdb-check:tuple_slice [Type: ref$<tuple$<i32,i32,slice$<i32> > >]
|
47 | 57 | // cdb-check: [+0x000] data_ptr : 0x[...] [Type: tuple$<i32,i32,slice$<i32> > *]
|
@@ -69,6 +79,7 @@ fn main() {
|
69 | 79 | let a: &Foo<[u8]> = &foo.value;
|
70 | 80 | let b: &Foo<Foo<[u8]>> = &foo;
|
71 | 81 | let c: &Foo<dyn std::fmt::Debug> = &Foo { value: 7i32 };
|
| 82 | + let _box: Box<Foo<dyn std::fmt::Debug>> = Box::new(Foo { value: 8i32 }); |
72 | 83 |
|
73 | 84 | // Also check unsized tuples
|
74 | 85 | let tuple_slice: &(i32, i32, [i32]) = &(0, 1, [2, 3]);
|
|
0 commit comments