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

Reply via email to