-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[7.0 Regression] libc++abi incorrectly aligns exceptions in 32 bit builds #38399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Signed off. How did you discover the bug? We should have testers for this, no? |
We do. The libc++abi 32 bit buildbot has been failing for months due to this bug [1]. I suspect it's also the cause of #37821 . [1] http://lab.llvm.org:8011/builders/libcxx-libcxxabi-x86_64-linux-ubuntu-32bit/builds/424 |
How embarrassing -- that one's on me.
I don't think so: my reproduction for #37821 still fails after applying your patch. |
Marshall, is this OK to merge? |
Yes; this is OK to merge for 7.1 |
Is there any reason that this bug should not be closed? |
Have we merged the commit? That would be the reason to keep this open. |
I don't think the commit has been merged to the release branch for LLVM 7.1 |
Merged: r344917 |
mentioned in issue #38454 |
Extended Description
Libc++ commit r339431 moved the _LIBCPP_HAS_NO_ALIGNED_ALLOCATION logic from to <__config>. As a result, it was defined when building libc++abi's fallback_malloc.cpp, which made libc++abi think posix_memalign was unavailable.
This meant that libc++abi was silently falling back to using malloc. In 32 bit builds, malloc does not return correctly aligned memory for the exception header.
This is a regression in the 7.0 release.
The issues was fixed in libc++abi commit r342815. This change should be merged into the 7.1 release.
@Marshall, Louis, can you sign off on this?
The text was updated successfully, but these errors were encountered: