From: JF Bastien Date: Wed, 14 Aug 2019 20:13:49 +0000 (+0000) Subject: Use std::is_final directly X-Git-Tag: llvmorg-11-init~11823 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9953c74fb65786930f6dec33f9e49473966410e3;p=platform%2Fupstream%2Fllvm.git Use std::is_final directly The workaround isn't needed anymore because all toolchains should support it. llvm-svn: 368910 --- diff --git a/llvm/include/llvm/Support/TrailingObjects.h b/llvm/include/llvm/Support/TrailingObjects.h index ddcdda5..1a15d39 100644 --- a/llvm/include/llvm/Support/TrailingObjects.h +++ b/llvm/include/llvm/Support/TrailingObjects.h @@ -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 must be final."); } // These two methods are the base of the recursion for this method. diff --git a/llvm/include/llvm/Support/type_traits.h b/llvm/include/llvm/Support/type_traits.h index 403bac7..b7d48e8 100644 --- a/llvm/include/llvm/Support/type_traits.h +++ b/llvm/include/llvm/Support/type_traits.h @@ -189,13 +189,4 @@ class is_trivially_copyable : 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() -#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