[clang] [Clang][ASTMatchers] Add visibility macros to variables declared by macros (PR #110206)

Vassil Vassilev via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 14 09:30:00 PDT 2024


https://github.com/vgvassilev updated https://github.com/llvm/llvm-project/pull/110206

>From bf2a9fe2d755adc8dfdd43418e15c35cf912edca Mon Sep 17 00:00:00 2001
From: Thomas Fransham <tfransham at gmail.com>
Date: Thu, 26 Sep 2024 21:23:50 +0100
Subject: [PATCH] [Clang][ASTMatchers] Add visibility macros to variables
 declared by macros

This will fix missing symbols for ASTMatchersTests on windows when building with
CLANG_LINK_CLANG and explicit visibility macros are used.
This is part of the work to enable LLVM_BUILD_LLVM_DYLIB and
LLVM\Clang plugins on window.
---
 clang/include/clang/ASTMatchers/ASTMatchersMacros.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/clang/include/clang/ASTMatchers/ASTMatchersMacros.h b/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
index 592a3898a29591..f781e0a565eb36 100644
--- a/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
+++ b/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
@@ -49,6 +49,8 @@
 #ifndef LLVM_CLANG_ASTMATCHERS_ASTMATCHERSMACROS_H
 #define LLVM_CLANG_ASTMATCHERS_ASTMATCHERSMACROS_H
 
+#include "clang/Support/Compiler.h"
+
 /// AST_MATCHER_FUNCTION(ReturnType, DefineMatcher) { ... }
 /// defines a zero parameter function named DefineMatcher() that returns a
 /// ReturnType object.
@@ -367,7 +369,7 @@
     static QualType (T::*value())() const { return &T::FunctionName; }         \
   };                                                                           \
   }                                                                            \
-  extern const ::clang::ast_matchers::internal::                               \
+  CLANG_ABI extern const ::clang::ast_matchers::internal::                     \
       TypeTraversePolymorphicMatcher<                                          \
           QualType,                                                            \
           ::clang::ast_matchers::internal::TypeMatcher##MatcherName##Getter,   \
@@ -407,7 +409,7 @@
     static TypeLoc (T::*value())() const { return &T::FunctionName##Loc; }     \
   };                                                                           \
   }                                                                            \
-  extern const ::clang::ast_matchers::internal::                               \
+  CLANG_ABI extern const ::clang::ast_matchers::internal::                     \
       TypeTraversePolymorphicMatcher<                                          \
           TypeLoc,                                                             \
           ::clang::ast_matchers::internal::                                    \



More information about the cfe-commits mailing list