Skip to content

[7.0 Regression] libc++abi incorrectly aligns exceptions in 32 bit builds #38399

Closed
@llvmbot

Description

@llvmbot
Bugzilla Link 39051
Resolution FIXED
Resolved on Oct 22, 2018 09:29
Version 7.0
OS Linux
Blocks #38454
Reporter LLVM Bugzilla Contributor
CC @zmodem,@ldionne,@mclow,@tstellar
Fixed by commit(s) r342815 r344917

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillalibc++libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.regression

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions