llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Florian Mayer (fmayer) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/178252.diff 3 Files Affected: - (modified) clang/lib/Parse/ParseDecl.cpp (+4) - (modified) clang/lib/Parse/ParseDeclCXX.cpp (+5) - (modified) clang/test/Sema/pragma-export-failing.cpp (+1-1) ``````````diff diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index f8c49646fcf3f..df9e3878bffc0 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -4534,6 +4534,10 @@ void Parser::ParseDeclarationSpecifiers( HandlePragmaMSPointersToMembers(); continue; + case tok::annot_pragma_export: + HandlePragmaExport(); + continue; + #define TRANSFORM_TYPE_TRAIT_DEF(_, Trait) case tok::kw___##Trait: #include "clang/Basic/TransformTypeTraits.def" // HACK: libstdc++ already uses '__remove_cv' as an alias template so we diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index da7b07ee26d3f..fd53e6573051c 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -1471,6 +1471,8 @@ bool Parser::isValidAfterTypeSpecifier(bool CouldBeBitfield) { case tok::annot_pragma_ms_vtordisp: // struct foo {...} _Pragma(pointers_to_members(...)); case tok::annot_pragma_ms_pointers_to_members: + // struct foo {...} _Pragma(export(...)); + case tok::annot_pragma_export: return true; case tok::colon: return CouldBeBitfield || // enum E { ... } : 2; @@ -3397,6 +3399,9 @@ Parser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclarationWithPragmas( case tok::annot_pragma_ms_vtordisp: HandlePragmaMSVtorDisp(); return nullptr; + case tok::annot_pragma_export: + HandlePragmaExport(); + return nullptr; case tok::annot_pragma_dump: HandlePragmaDump(); return nullptr; diff --git a/clang/test/Sema/pragma-export-failing.cpp b/clang/test/Sema/pragma-export-failing.cpp index da0d9ca4531de..6461b4532b5d5 100644 --- a/clang/test/Sema/pragma-export-failing.cpp +++ b/clang/test/Sema/pragma-export-failing.cpp @@ -26,7 +26,7 @@ void f11(int); template<auto func> struct S { -#pragma export(func) // expected-error{{this pragma cannot appear in struct declaration}} +#pragma export(func) // expected-error{{'#pragma export' can only appear at file scope}} }; extern "C" void funcToExport(); `````````` </details> https://github.com/llvm/llvm-project/pull/178252 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
