Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LLVM data structures like llvm::User and llvm::MDNode rely on the value of object storage persisting beyond the lifetime of the object (#24952). This is not standard compliant and causes a runtime crash if LLVM is built with GCC and LTO enabled (#57740). Until these issues are fixed, we need to disable dead store eliminations eliminations based on object lifetime. Bug: #24952 Bug: #57740 Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106943 (This was originally committed as 94f7c96 but I reverted it in b974991f4c4457a2104b648d9797a0ed438ecc9 to fix authorship.) Reviewed By: MaskRay, thesamesam, nikic Differential Revision: https://reviews.llvm.org/D150505 Signed-off-by: Sam James <sam@gentoo.org>
- Loading branch information
ce990b5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this supposed to close #24952?
ce990b5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I don't think so, as there's still the broader issue that needs to be looked at (it still sounds like UB and this is just a workaround). But I'm also not an expert on that area - so if someone who is wants to close it, that's fine with me.