CFI: blacklist STL allocate() from unrelated-casts
authorVlad Tsyrklevich <vlad@tsyrklevich.net>
Fri, 4 Aug 2017 19:10:11 +0000 (19:10 +0000)
committerVlad Tsyrklevich <vlad@tsyrklevich.net>
Fri, 4 Aug 2017 19:10:11 +0000 (19:10 +0000)
commit44200125e9d71fc6491b68b8337b64a5f11c34ea
treec8051edbc6cb3442ccbe3c9f67a07c040d7473de
parentfa857b174d912af8f5217b595d0170ead5c71a62
CFI: blacklist STL allocate() from unrelated-casts

Summary:
Previously, STL allocators were blacklisted in compiler_rt's
cfi_blacklist.txt because they mandated a cast from void* to T* before
object initialization completed. This change moves that logic into the
front end because C++ name mangling supports a substitution compression
mechanism for symbols that makes it difficult to blacklist the mangled
symbol for allocate() using a regular expression.

Motivated by crbug.com/751385.

Reviewers: pcc, kcc

Reviewed By: pcc

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36294

llvm-svn: 310097
clang/lib/CodeGen/CodeGenFunction.cpp
clang/test/CodeGen/cfi-unrelated-cast.cpp [new file with mode: 0644]