about summary refs log tree commit diff
path: root/src/test/debuginfo/unsized.rs
AgeCommit message (Collapse)AuthorLines
2022-10-31[debuginfo] Make debuginfo type names for slices and str consistent.Michael Woerister-6/+6
Before this PR, the compiler would emit the debuginfo name `slice$<T>` for all kinds of slices, regardless of whether they are behind a reference or not and regardless of the kind of reference. As a consequence, the types `Foo<&[T]>`, `Foo<[T]>`, and `Foo<&mut [T]>` would end up with the same type name `Foo<slice$<T> >` in debuginfo, making it impossible to disambiguate between them by name. Similarly, `&str` would get the name `str` in debuginfo, so the debuginfo name for `Foo<str>` and `Foo<&str>` would be the same. In contrast, `*const [bool]` and `*mut [bool]` would be `ptr_const$<slice$<bool> >` and `ptr_mut$<slice$<bool> >`, i.e. the encoding does not lose information about the type. This PR removes all special handling for slices and `str`. The types `&[bool]`, `&mut [bool]`, and `&str` thus get the names `ref$<slice2$<bool> >`, `ref_mut$<slice2$<bool> >`, and `ref$<str$>` respectively -- as one would expect.
2022-03-24debuginfo: Fix debuginfo for Box<T> where T is unsized.Michael Woerister-4/+15
Before this fix, the debuginfo for the fields was generated from the struct defintion of Box<T>, but (at least at the moment) the compiler pretends that Box<T> is just a (fat) pointer, so the fields need to be `pointer` and `vtable` instead of `__0: Unique<T>` and `__1: Allocator`. This is meant as a temporary mitigation until we can make sure that simply treating Box as a regular struct in debuginfo does not cause too much breakage in the ecosystem.
2022-02-16debuginfo: Support fat pointers to unsized tuples.Michael Woerister-0/+23
2022-01-27[debuginfo] Fix and unify handling of fat pointers in debuginfo: Fix some ↵Michael Woerister-15/+11
debuginfo tests for old GDB versions and 32-bit targets.
2022-01-24[debuginfo] Fix and unify handling of fat pointers in debuginfo.Michael Woerister-6/+34
2018-12-25Remove licensesMark Rousskov-10/+0
2016-12-22Fix debuginfo for unsized struct membersPhilip Craig-0/+45
The member was given the size of a fat pointer, which caused llvm to emit DWARF attributes for a 128-bit bitfield.