================ @@ -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