Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch
authorMehdi Amini <mehdi.amini@apple.com>
Fri, 18 Nov 2016 17:28:10 +0000 (17:28 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Fri, 18 Nov 2016 17:28:10 +0000 (17:28 +0000)
commitc3115285164b7c3762be12c2925d7ec76106e6f6
tree155b4afc9bb3a4b1055745c6b474cd98b689c113
parent395be572f00fcc21538a30dc3d4a75bbbba78ee9
Add link-time detection of LLVM_ABI_BREAKING_CHECKS mismatch

Summary:
LLVM will define a symbol, either EnableABIBreakingChecks or
DisableABIBreakingChecks depending on the configuration setting for
LLVM_ABI_BREAKING_CHECKS.

The llvm-config.h header will add weak references to these symbols in
every clients that includes this header. This should ensure that
a mismatch triggers a link failure (or a load time failure for DSO).

On MSVC, the pragma "detect_mismatch" is used instead.

Reviewers: rnk, jroelofs

Subscribers: llvm-commits, mgorny

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

llvm-svn: 287352
llvm/include/llvm/Config/llvm-config.h.cmake
llvm/lib/Support/Error.cpp