|
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