Conversation
|
☔ The latest upstream changes (presumably #45806) made this pull request unmergeable. Please resolve the merge conflicts. |
michaelwoerister
left a comment
There was a problem hiding this comment.
Looks good to me, thanks @tromey!
8c9a797 to
ab4da8c
Compare
|
So far I haven't managed to reproduce that failure. |
|
My current theory is that this is failing due to an unmodified LLVM; and so the patch will need some tweaks. |
|
Looking at the patches, I still don't see how that would be possible, but I'm rebuilding without the LLVM patch to be sure. |
|
I rebuilt without the LLVM bump and didn't see this failure. Now I don't have a theory about what is going wrong. Maybe I need to build specifically against whatever LLVM travis is using. |
|
The first CI run uses Ubuntu's llvm-3.9. The rest should use rust's own llvm. |
Thanks. I got it to fail with my system llvm. |
|
The bug is that the patch is passing in NULL for the linkage name of the vtable. |
This adds a "min-system-llvm-version" directive, so that a test can indicate that it will either work with rust-llvm or with some minimal system LLVM. This makes it simpler to write a test that requires an LLVM patch that landed upstream and was then backported to rust-llvm.
Emit better debugging information for a trait object pointer. In particular, now: * The fields are explicitly represented in the DWARF; * DWARF for the vtable itself is emitted; and * The DWARF for the vtable's type has a DW_AT_containing_type which points to the concrete type for which the vtable was emitted. This is a small DWARF extension, that allows debuggers to determine the real type of the object to which a trait object points. I'll submit the gdb patch to take advantage of this new debuginfo once this lands. The vtable type is not currently complete -- it doesn't include members for the pointers it contains. This information was not needed for this feature. This addresses part 1 of rust-lang#1563.
ab4da8c to
ae4cc60
Compare
|
@tromey I think this is ready to be reviewed or merged? cc @michaelwoerister |
|
@kennytm yes - it was reviewed once, then I made a small change to address the test failures. A re-review would be good. |
|
@bors r+ |
|
📌 Commit ae4cc60 has been approved by |
Trait object debug This enables better debugging of trait objects. See the individual commits for explanations. This required an LLVM bump.
|
☀️ Test successful - status-appveyor, status-travis |
This enables better debugging of trait objects. See the individual commits for explanations. This required an LLVM bump.