[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