12#ifndef LLVM_ABI_BREAKING_CHECKS_H
13#define LLVM_ABI_BREAKING_CHECKS_H
16#define LLVM_ENABLE_ABI_BREAKING_CHECKS 0
19#define LLVM_ENABLE_REVERSE_ITERATION 0
23#if !defined(LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING) || !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
29#define LLVM_XSTR(s) LLVM_STR(s)
31#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))
34#elif defined(_WIN32) || defined(__CYGWIN__)
36#elif defined(__cplusplus)
37#if !(defined(_AIX) && defined(__GNUC__) && !defined(__clang__))
38#define LLVM_HIDDEN_VISIBILITY __attribute__ ((visibility("hidden")))
42#define LLVM_HIDDEN_VISIBILITY
45#if LLVM_ENABLE_ABI_BREAKING_CHECKS
46extern int EnableABIBreakingChecks;
48__attribute__((weak))
int *VerifyEnableABIBreakingChecks =
49 &EnableABIBreakingChecks;
51extern int DisableABIBreakingChecks;
53__attribute__((weak))
int *VerifyDisableABIBreakingChecks =
54 &DisableABIBreakingChecks;
57#undef LLVM_HIDDEN_VISIBILITY