[clang] DO NOT SUBMIT for buildbot (PR #178252)

Florian Mayer via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 27 08:48:34 PST 2026


https://github.com/fmayer created https://github.com/llvm/llvm-project/pull/178252

None

>From 58244f795f70e26970fca83e4a01be57e6eabe97 Mon Sep 17 00:00:00 2001
From: Florian Mayer <fmayer at google.com>
Date: Tue, 27 Jan 2026 08:48:21 -0800
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
 =?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.6
---
 clang/lib/Parse/ParseDecl.cpp             | 4 ++++
 clang/lib/Parse/ParseDeclCXX.cpp          | 5 +++++
 clang/test/Sema/pragma-export-failing.cpp | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

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();



More information about the cfe-commits mailing list