forked from OSchip/llvm-project
Use std::is_final directly
The workaround isn't needed anymore because all toolchains should support it. llvm-svn: 368910
This commit is contained in:
parent
ee6f3dd14d
commit
9953c74fb6
|
@ -249,9 +249,7 @@ class TrailingObjects : private trailing_objects_internal::TrailingObjectsImpl<
|
|||
// because BaseTy isn't complete at class instantiation time, but
|
||||
// will be by the time this function is instantiated.
|
||||
static void verifyTrailingObjectsAssertions() {
|
||||
#ifdef LLVM_IS_FINAL
|
||||
static_assert(LLVM_IS_FINAL(BaseTy), "BaseTy must be final.");
|
||||
#endif
|
||||
static_assert(std::is_final<BaseTy>(), "BaseTy must be final.");
|
||||
}
|
||||
|
||||
// These two methods are the base of the recursion for this method.
|
||||
|
|
|
@ -189,13 +189,4 @@ class is_trivially_copyable<T*> : public std::true_type {
|
|||
|
||||
} // end namespace llvm
|
||||
|
||||
// If the compiler supports detecting whether a class is final, define
|
||||
// an LLVM_IS_FINAL macro. If it cannot be defined properly, this
|
||||
// macro will be left undefined.
|
||||
#if defined(__cplusplus) || defined(_MSC_VER)
|
||||
#define LLVM_IS_FINAL(Ty) std::is_final<Ty>()
|
||||
#elif __has_feature(is_final) || LLVM_GNUC_PREREQ(4, 7, 0)
|
||||
#define LLVM_IS_FINAL(Ty) __is_final(Ty)
|
||||
#endif
|
||||
|
||||
#endif // LLVM_SUPPORT_TYPE_TRAITS_H
|
||||
|
|
Loading…
Reference in New Issue