================
@@ -4504,6 +4504,11 @@ void Parser::ParseDeclarationSpecifiers(
       isInvalid = DS.setFunctionSpecNoreturn(Loc, PrevSpec, DiagID);
       break;
 
+    case tok::kw__Export:
+      // We're done with the declaration-specifiers.
+      goto DoneWithDeclSpec;
----------------
hubert-reinterpretcast wrote:

`_Export` is not really a declaration specifier (at least in the traditional 
implementation).
It is more like a C++11 attribute except that it lives on the left of a 
_declarator-id_ instead of on the right.
In some realizations, the (less clean) conceptual model is that it is a 
declarator like `*` is, except it binds more strongly than `(<function 
parameters>)` or `[<array bound>]`.

@perry-ca, I don't see any test in this PR for `_Export` in positions like:
```cpp
int (*_Export x)(void) = 0;
```

Is the above accepted with this PR? Which conceptual model is being implemented 
here?

https://github.com/llvm/llvm-project/pull/111035
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to