[clang] [clang][Modules] Complete the implementation of P2615: Meaningful exports (PR #194201)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 27 08:46:42 PDT 2026


================
@@ -440,6 +443,87 @@ Decl *Parser::ParseExportDeclaration() {
                                        T.getCloseLocation());
 }
 
+void Parser::CheckUnbracedLinkageOrExportDeclaration(
+    Decl *LinkageOrExportDecl) {
+  const auto *DC = cast<DeclContext>(LinkageOrExportDecl);
+  if (DC->decls_empty())
+    return;
+
+  const Decl *D = *DC->decls_begin();
+
+  // Nested export declarations are diagnosed elsewhere.
+  if (isa<LinkageSpecDecl>(LinkageOrExportDecl) && isa<ExportDecl>(D)) {
+    Diag(LinkageOrExportDecl->getLocation(),
+         diag::err_invalid_decl_in_linkage_spec)
+        << 2;
----------------
cor3ntin wrote:

```suggestion
        << /*export declaration*/ 2;
```

https://github.com/llvm/llvm-project/pull/194201


More information about the cfe-commits mailing list