Turn LLVM_ENABLE_ABI_BREAKING_CHECKS into a 0/1 definition like

LLVM_ENABLE_THREADS. Include llvm-config.h explicitly in headers to make
sure that the definition is available.

llvm-svn: 282907
This commit is contained in:
Joerg Sonnenberger 2016-09-30 19:52:27 +00:00
parent f7b851fe84
commit ece29ea90b
5 changed files with 24 additions and 24 deletions

View File

@ -22,22 +22,7 @@
namespace llvm {
#ifndef LLVM_ENABLE_ABI_BREAKING_CHECKS
class DebugEpochBase {
public:
void incrementEpoch() {}
class HandleBase {
public:
HandleBase() = default;
explicit HandleBase(const DebugEpochBase *) {}
bool isHandleInSync() const { return true; }
const void *getEpochAddress() const { return nullptr; }
};
};
#else
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
/// \brief A base class for data structure classes wishing to make iterators
/// ("handles") pointing into themselves fail-fast. When building without
@ -92,6 +77,21 @@ public:
};
};
#else
class DebugEpochBase {
public:
void incrementEpoch() {}
class HandleBase {
public:
HandleBase() = default;
explicit HandleBase(const DebugEpochBase *) {}
bool isHandleInSync() const { return true; }
const void *getEpochAddress() const { return nullptr; }
};
};
#endif // LLVM_ENABLE_ABI_BREAKING_CHECKS
} // namespace llvm

View File

@ -10,6 +10,8 @@
#ifndef LLVM_ADT_ILIST_NODE_OPTIONS_H
#define LLVM_ADT_ILIST_NODE_OPTIONS_H
#include "llvm/Config/llvm-config.h"
#include <type_traits>
namespace llvm {
@ -64,7 +66,7 @@ struct extract_sentinel_tracking<
template <class Option1, class... Options>
struct extract_sentinel_tracking<Option1, Options...>
: extract_sentinel_tracking<Options...> {};
#ifdef LLVM_ENABLE_ABI_BREAKING_CHECKS
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
template <> struct extract_sentinel_tracking<> : std::true_type, is_implicit {};
#else
template <>

View File

@ -375,9 +375,8 @@
/* Installation directory for documentation */
#cmakedefine LLVM_DOCSDIR "${LLVM_DOCSDIR}"
/* Define if LLVM is built with asserts and checks that change the layout of
client-visible data structures. */
#cmakedefine LLVM_ENABLE_ABI_BREAKING_CHECKS
/* Define to enable checks that alter the LLVM C++ ABI */
#cmakedefine01 LLVM_ENABLE_ABI_BREAKING_CHECKS
/* Define if threads enabled */
#cmakedefine01 LLVM_ENABLE_THREADS

View File

@ -26,9 +26,8 @@
/* Installation directory for documentation */
#cmakedefine LLVM_DOCSDIR "${LLVM_DOCSDIR}"
/* Define if LLVM is built with asserts and checks that change the layout of
client-visible data structures. */
#cmakedefine LLVM_ENABLE_ABI_BREAKING_CHECKS
/* Define to enable checks that alter the LLVM C++ ABI */
#cmakedefine01 LLVM_ENABLE_ABI_BREAKING_CHECKS
/* Define if threads enabled */
#cmakedefine01 LLVM_ENABLE_THREADS

View File

@ -37,7 +37,7 @@ TEST(IListSentinelTest, DefaultConstructor) {
Sentinel S;
EXPECT_EQ(&S, LocalAccess::getPrev(S));
EXPECT_EQ(&S, LocalAccess::getNext(S));
#ifdef LLVM_ENABLE_ABI_BREAKING_CHECKS
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
EXPECT_TRUE(S.isKnownSentinel());
#else
EXPECT_FALSE(S.isKnownSentinel());