Author: Kazu Hirata Date: 2022-10-01T17:24:54-07:00 New Revision: 9d0d4046c05f230183d31130425b5294b768200b
URL: https://github.com/llvm/llvm-project/commit/9d0d4046c05f230183d31130425b5294b768200b DIFF: https://github.com/llvm/llvm-project/commit/9d0d4046c05f230183d31130425b5294b768200b.diff LOG: [clang] Use std::enable_if_t (NFC) Added: Modified: clang/include/clang/ASTMatchers/ASTMatchersInternal.h clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h clang/include/clang/Basic/Diagnostic.h clang/include/clang/Basic/PartialDiagnostic.h clang/include/clang/Sema/Sema.h clang/lib/AST/Decl.cpp Removed: ################################################################################ diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index 5785a72559987..12bc593b785ae 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -1966,8 +1966,8 @@ template <typename Ty, typename Enable = void> struct GetBodyMatcher { }; template <typename Ty> -struct GetBodyMatcher<Ty, typename std::enable_if< - std::is_base_of<FunctionDecl, Ty>::value>::type> { +struct GetBodyMatcher< + Ty, std::enable_if_t<std::is_base_of<FunctionDecl, Ty>::value>> { static const Stmt *get(const Ty &Node) { return Node.doesThisDeclarationHaveABody() ? Node.getBody() : nullptr; } diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h index e7533794de48b..f73ea7985d79e 100644 --- a/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h @@ -71,7 +71,7 @@ class DataflowAnalysisContext { /// /// `Loc` must not be null. template <typename T> - typename std::enable_if<std::is_base_of<StorageLocation, T>::value, T &>::type + std::enable_if_t<std::is_base_of<StorageLocation, T>::value, T &> takeOwnership(std::unique_ptr<T> Loc) { assert(Loc != nullptr); Locs.push_back(std::move(Loc)); @@ -84,7 +84,7 @@ class DataflowAnalysisContext { /// /// `Val` must not be null. template <typename T> - typename std::enable_if<std::is_base_of<Value, T>::value, T &>::type + std::enable_if_t<std::is_base_of<Value, T>::value, T &> takeOwnership(std::unique_ptr<T> Val) { assert(Val != nullptr); Vals.push_back(std::move(Val)); diff --git a/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h b/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h index 541b9132ebf50..d093967e193a1 100644 --- a/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h +++ b/clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h @@ -260,7 +260,7 @@ class Environment { /// /// `Loc` must not be null. template <typename T> - typename std::enable_if<std::is_base_of<StorageLocation, T>::value, T &>::type + std::enable_if_t<std::is_base_of<StorageLocation, T>::value, T &> takeOwnership(std::unique_ptr<T> Loc) { return DACtx->takeOwnership(std::move(Loc)); } @@ -272,7 +272,7 @@ class Environment { /// /// `Val` must not be null. template <typename T> - typename std::enable_if<std::is_base_of<Value, T>::value, T &>::type + std::enable_if_t<std::is_base_of<Value, T>::value, T &> takeOwnership(std::unique_ptr<T> Val) { return DACtx->takeOwnership(std::move(Val)); } diff --git a/clang/include/clang/Basic/Diagnostic.h b/clang/include/clang/Basic/Diagnostic.h index 09857da61d326..120e3f578568d 100644 --- a/clang/include/clang/Basic/Diagnostic.h +++ b/clang/include/clang/Basic/Diagnostic.h @@ -1346,8 +1346,8 @@ class DiagnosticBuilder : public StreamingDiagnostic { // It is necessary to limit this to rvalue reference to avoid calling this // function with a bitfield lvalue argument since non-const reference to // bitfield is not allowed. - template <typename T, typename = typename std::enable_if< - !std::is_lvalue_reference<T>::value>::type> + template <typename T, + typename = std::enable_if_t<!std::is_lvalue_reference<T>::value>> const DiagnosticBuilder &operator<<(T &&V) const { assert(isActive() && "Clients must not add to cleared diagnostic!"); const StreamingDiagnostic &DB = *this; diff --git a/clang/include/clang/Basic/PartialDiagnostic.h b/clang/include/clang/Basic/PartialDiagnostic.h index ddee6821e2e13..507d789c54ff9 100644 --- a/clang/include/clang/Basic/PartialDiagnostic.h +++ b/clang/include/clang/Basic/PartialDiagnostic.h @@ -64,8 +64,8 @@ class PartialDiagnostic : public StreamingDiagnostic { // It is necessary to limit this to rvalue reference to avoid calling this // function with a bitfield lvalue argument since non-const reference to // bitfield is not allowed. - template <typename T, typename = typename std::enable_if< - !std::is_lvalue_reference<T>::value>::type> + template <typename T, + typename = std::enable_if_t<!std::is_lvalue_reference<T>::value>> const PartialDiagnostic &operator<<(T &&V) const { const StreamingDiagnostic &DB = *this; DB << std::move(V); diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 52b554b9f8b10..2ae74896f6201 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -1719,8 +1719,8 @@ class Sema final { // It is necessary to limit this to rvalue reference to avoid calling this // function with a bitfield lvalue argument since non-const reference to // bitfield is not allowed. - template <typename T, typename = typename std::enable_if< - !std::is_lvalue_reference<T>::value>::type> + template <typename T, + typename = std::enable_if_t<!std::is_lvalue_reference<T>::value>> const ImmediateDiagBuilder &operator<<(T &&V) const { const DiagnosticBuilder &BaseDiag = *this; BaseDiag << std::move(V); @@ -1793,8 +1793,8 @@ class Sema final { // It is necessary to limit this to rvalue reference to avoid calling this // function with a bitfield lvalue argument since non-const reference to // bitfield is not allowed. - template <typename T, typename = typename std::enable_if< - !std::is_lvalue_reference<T>::value>::type> + template <typename T, + typename = std::enable_if_t<!std::is_lvalue_reference<T>::value>> const SemaDiagnosticBuilder &operator<<(T &&V) const { if (ImmediateDiag) *ImmediateDiag << std::move(V); diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 4236c39401ef4..49ad2230e7ca0 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -187,8 +187,9 @@ static bool usesTypeVisibility(const NamedDecl *D) { /// Does the given declaration have member specialization information, /// and if so, is it an explicit specialization? -template <class T> static typename -std::enable_if<!std::is_base_of<RedeclarableTemplateDecl, T>::value, bool>::type +template <class T> +static std::enable_if_t<!std::is_base_of<RedeclarableTemplateDecl, T>::value, + bool> isExplicitMemberSpecialization(const T *D) { if (const MemberSpecializationInfo *member = D->getMemberSpecializationInfo()) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits