[clang] 44c0719 - Silence MSVC warnings; NFC

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 30 09:12:01 PST 2025


Author: Aaron Ballman
Date: 2025-01-30T12:10:48-05:00
New Revision: 44c0719e77b37374c89b7fc1320664ebb404323d

URL: https://github.com/llvm/llvm-project/commit/44c0719e77b37374c89b7fc1320664ebb404323d
DIFF: https://github.com/llvm/llvm-project/commit/44c0719e77b37374c89b7fc1320664ebb404323d.diff

LOG: Silence MSVC warnings; NFC

After the changes to DynamicRecursiveASTVisitor, we started getting
several warnings from MSVC like:

warning C4661: 'bool clang::DynamicRecursiveASTVisitorBase<false>::WalkUpFromNamedDecl(clang::NamedDecl *)':
no suitable definition provided for explicit template instantiation request

These changes silence the warnings by providing a definition for those
functions.

Added: 
    

Modified: 
    clang/include/clang/AST/DynamicRecursiveASTVisitor.h
    clang/lib/AST/DynamicRecursiveASTVisitor.cpp

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/AST/DynamicRecursiveASTVisitor.h b/clang/include/clang/AST/DynamicRecursiveASTVisitor.h
index 4e0ba568263bf3..0efb9ca8ee8c5a 100644
--- a/clang/include/clang/AST/DynamicRecursiveASTVisitor.h
+++ b/clang/include/clang/AST/DynamicRecursiveASTVisitor.h
@@ -254,6 +254,7 @@ template <bool IsConst> class DynamicRecursiveASTVisitorBase {
   virtual bool Traverse##CLASS##Decl(MaybeConst<CLASS##Decl> *D);
 #include "clang/AST/DeclNodes.inc"
 
+#define ABSTRACT_DECL(DECL)
 #define DECL(CLASS, BASE)                                                      \
   bool WalkUpFrom##CLASS##Decl(MaybeConst<CLASS##Decl> *D);                    \
   virtual bool Visit##CLASS##Decl(MaybeConst<CLASS##Decl> *D) { return true; }
@@ -275,6 +276,7 @@ template <bool IsConst> class DynamicRecursiveASTVisitorBase {
   virtual bool Traverse##CLASS##Type(MaybeConst<CLASS##Type> *T);
 #include "clang/AST/TypeNodes.inc"
 
+#define ABSTRACT_TYPE(CLASS, BASE)
 #define TYPE(CLASS, BASE)                                                      \
   bool WalkUpFrom##CLASS##Type(MaybeConst<CLASS##Type> *T);                    \
   virtual bool Visit##CLASS##Type(MaybeConst<CLASS##Type> *T) { return true; }

diff  --git a/clang/lib/AST/DynamicRecursiveASTVisitor.cpp b/clang/lib/AST/DynamicRecursiveASTVisitor.cpp
index b478e7a39ea186..75d49f6eca76cf 100644
--- a/clang/lib/AST/DynamicRecursiveASTVisitor.cpp
+++ b/clang/lib/AST/DynamicRecursiveASTVisitor.cpp
@@ -221,7 +221,7 @@ template <bool Const> struct Impl : RecursiveASTVisitor<Impl<Const>> {
     return Visitor.Traverse##CLASS##Decl(D);                                   \
   }
 #include "clang/AST/DeclNodes.inc"
-
+#define ABSTRACT_DECL(DECL)
 #define DECL(CLASS, BASE)                                                      \
   bool Visit##CLASS##Decl(CLASS##Decl *D) {                                    \
     return Visitor.Visit##CLASS##Decl(D);                                      \
@@ -246,6 +246,7 @@ template <bool Const> struct Impl : RecursiveASTVisitor<Impl<Const>> {
   }
 #include "clang/AST/TypeNodes.inc"
 
+#define ABSTRACT_TYPE(CLASS, BASE)
 #define TYPE(CLASS, BASE)                                                      \
   bool Visit##CLASS##Type(CLASS##Type *T) {                                    \
     return Visitor.Visit##CLASS##Type(T);                                      \


        


More information about the cfe-commits mailing list