gAlfonso-bit created this revision. gAlfonso-bit requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
Taken from a downstream fork: https://github.com/apple/llvm-project/pull/3461/files. IBAction and IBOutlet are defined when compiling with ObjC/ObjC++ enabled. This can cause issues due to macro expansion when we look through these header files while compiling in ObjC++ mode. This patch temporarily undefs these macros so that the compiler doesn't try to expand them when looking through these attribute headers. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D112367 Files: clang/include/clang/AST/Attr.h clang/include/clang/AST/RecursiveASTVisitor.h Index: clang/include/clang/AST/RecursiveASTVisitor.h =================================================================== --- clang/include/clang/AST/RecursiveASTVisitor.h +++ clang/include/clang/AST/RecursiveASTVisitor.h @@ -13,18 +13,23 @@ #ifndef LLVM_CLANG_AST_RECURSIVEASTVISITOR_H #define LLVM_CLANG_AST_RECURSIVEASTVISITOR_H +#pragma push_macro("IBAction") +#pragma push_macro("IBOutlet") +#undef IBAction +#undef IBOutlet + #include "clang/AST/Attr.h" #include "clang/AST/Decl.h" -#include "clang/AST/DeclarationName.h" #include "clang/AST/DeclBase.h" #include "clang/AST/DeclCXX.h" #include "clang/AST/DeclFriend.h" #include "clang/AST/DeclObjC.h" #include "clang/AST/DeclOpenMP.h" #include "clang/AST/DeclTemplate.h" +#include "clang/AST/DeclarationName.h" #include "clang/AST/Expr.h" -#include "clang/AST/ExprConcepts.h" #include "clang/AST/ExprCXX.h" +#include "clang/AST/ExprConcepts.h" #include "clang/AST/ExprObjC.h" #include "clang/AST/ExprOpenMP.h" #include "clang/AST/LambdaCapture.h" @@ -3702,4 +3707,7 @@ } // end namespace clang +#pragma pop_macro("IBAction") +#pragma pop_macro("IBOutlet") + #endif // LLVM_CLANG_AST_RECURSIVEASTVISITOR_H Index: clang/include/clang/AST/Attr.h =================================================================== --- clang/include/clang/AST/Attr.h +++ clang/include/clang/AST/Attr.h @@ -13,14 +13,19 @@ #ifndef LLVM_CLANG_AST_ATTR_H #define LLVM_CLANG_AST_ATTR_H +#pragma push_macro("IBAction") +#pragma push_macro("IBOutlet") +#undef IBAction +#undef IBOutlet + #include "clang/AST/ASTFwd.h" #include "clang/AST/AttrIterator.h" #include "clang/AST/Decl.h" #include "clang/AST/Type.h" #include "clang/Basic/AttrKinds.h" #include "clang/Basic/AttributeCommonInfo.h" -#include "clang/Basic/LangOptions.h" #include "clang/Basic/LLVM.h" +#include "clang/Basic/LangOptions.h" #include "clang/Basic/OpenMPKinds.h" #include "clang/Basic/Sanitizers.h" #include "clang/Basic/SourceLocation.h" @@ -379,4 +384,7 @@ } } // end namespace clang +#pragma pop_macro("IBAction") +#pragma pop_macro("IBOutlet") + #endif
Index: clang/include/clang/AST/RecursiveASTVisitor.h =================================================================== --- clang/include/clang/AST/RecursiveASTVisitor.h +++ clang/include/clang/AST/RecursiveASTVisitor.h @@ -13,18 +13,23 @@ #ifndef LLVM_CLANG_AST_RECURSIVEASTVISITOR_H #define LLVM_CLANG_AST_RECURSIVEASTVISITOR_H +#pragma push_macro("IBAction") +#pragma push_macro("IBOutlet") +#undef IBAction +#undef IBOutlet + #include "clang/AST/Attr.h" #include "clang/AST/Decl.h" -#include "clang/AST/DeclarationName.h" #include "clang/AST/DeclBase.h" #include "clang/AST/DeclCXX.h" #include "clang/AST/DeclFriend.h" #include "clang/AST/DeclObjC.h" #include "clang/AST/DeclOpenMP.h" #include "clang/AST/DeclTemplate.h" +#include "clang/AST/DeclarationName.h" #include "clang/AST/Expr.h" -#include "clang/AST/ExprConcepts.h" #include "clang/AST/ExprCXX.h" +#include "clang/AST/ExprConcepts.h" #include "clang/AST/ExprObjC.h" #include "clang/AST/ExprOpenMP.h" #include "clang/AST/LambdaCapture.h" @@ -3702,4 +3707,7 @@ } // end namespace clang +#pragma pop_macro("IBAction") +#pragma pop_macro("IBOutlet") + #endif // LLVM_CLANG_AST_RECURSIVEASTVISITOR_H Index: clang/include/clang/AST/Attr.h =================================================================== --- clang/include/clang/AST/Attr.h +++ clang/include/clang/AST/Attr.h @@ -13,14 +13,19 @@ #ifndef LLVM_CLANG_AST_ATTR_H #define LLVM_CLANG_AST_ATTR_H +#pragma push_macro("IBAction") +#pragma push_macro("IBOutlet") +#undef IBAction +#undef IBOutlet + #include "clang/AST/ASTFwd.h" #include "clang/AST/AttrIterator.h" #include "clang/AST/Decl.h" #include "clang/AST/Type.h" #include "clang/Basic/AttrKinds.h" #include "clang/Basic/AttributeCommonInfo.h" -#include "clang/Basic/LangOptions.h" #include "clang/Basic/LLVM.h" +#include "clang/Basic/LangOptions.h" #include "clang/Basic/OpenMPKinds.h" #include "clang/Basic/Sanitizers.h" #include "clang/Basic/SourceLocation.h" @@ -379,4 +384,7 @@ } } // end namespace clang +#pragma pop_macro("IBAction") +#pragma pop_macro("IBOutlet") + #endif
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits