aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authoryronglin <yronglin777@gmail.com>2024-07-20 20:41:00 +0800
committerGitHub <noreply@github.com>2024-07-20 20:41:00 +0800
commite77a01d79a48e15c94c89e4aa4bd27424a96b49b (patch)
treede9dcfce36f2d950bd058ac191222595bf8ffa9a /clang/lib/Parse/ParseDecl.cpp
parent710dab6e18ad9ed22c2529b9125d7b8813165ede (diff)
downloadllvm-e77a01d79a48e15c94c89e4aa4bd27424a96b49b.zip
llvm-e77a01d79a48e15c94c89e4aa4bd27424a96b49b.tar.gz
llvm-e77a01d79a48e15c94c89e4aa4bd27424a96b49b.tar.bz2
[Clang] Implement P3034R1 Module Declarations Shouldn’t be Macros (#90574)
This PR implement [P3034R1 Module Declarations Shouldn’t be Macros](https://wg21.link/P3034R1), and refactor the convoluted state machines in module name lexical analysis. --------- Signed-off-by: yronglin <yronglin777@gmail.com> Co-authored-by: Aaron Ballman <aaron@aaronballman.com> Co-authored-by: cor3ntin <corentinjabot@gmail.com>
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 7ce9a9c..577527d 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -3958,7 +3958,13 @@ void Parser::ParseDeclarationSpecifiers(
// We're done with the declaration-specifiers.
goto DoneWithDeclSpec;
-
+ case tok::annot_module_name: {
+ PP.EnterTokenStream(
+ Tok.getAnnotationValueAs<ModuleNameInfo *>()->getTokens(),
+ /*DisableMacroExpansion=*/true, /*IsReinject=*/false);
+ ConsumeAnyToken();
+ [[fallthrough]];
+ }
// typedef-name
case tok::kw___super:
case tok::kw_decltype: