HomeFreeBSD

clang: Build with -fno-strict-aliasing when using GCC

Description

clang: Build with -fno-strict-aliasing when using GCC

Somewhat ironically, there are strict aliasing violations in Clang,
which can result in the following assertion failure:

Assertion `*(NamedDecl **)&Data == ND && "PointerUnion mangles the NamedDecl pointer!"' failed.

Upstream's clang/CMakeLists.txt specifically (not LLVM as a whole)
passes -fno-strict-aliasing if the compiler is not Clang, and this fixes
the above issue.

This was seen when cross-building from Linux using a bootstrap
compiler, but likely also affects worlds built with a new enough
external GCC toolchain.

MFC after: 1 week
Reviewed by: dim
Differential Revision: https://reviews.freebsd.org/D31533

(cherry picked from commit c1f7d8dd23db693106fcd66e0b1766a3f3194670)

Details

Provenance
jrtc27Authored on Aug 24 2021, 1:59 PM
Reviewer
dim
Differential Revision
D31533: clang: Build with -fno-strict-aliasing when using GCC
Parents
rG523f2486d54a: clang: Support building with GCC and DEBUG_FILES disabled
Branches
Unknown
Tags
Unknown