https://github.com/anutosh491 created 
https://github.com/llvm/llvm-project/pull/142749

As can be seen through the docs 
(https://github.com/llvm/llvm-project/blob/7e1fa09ce2a228c949ce4490c98f2c73ed8ada00/clang/docs/LanguageExtensions.rst#c-keywords-supported-in-all-language-modes),
 Clang supports certain C keywords in all language modes — this patch ensures 
clang-repl handles them consistently.

Here's an example testing all the above keywords. We have everything in place 
except `_Imaginary` (_Complex works but _Imaginary doesn't which was weird) and 
`_Noreturn`

>From be0d72e8dab1ef90771e5929dcd5064e5980f877 Mon Sep 17 00:00:00 2001
From: anutosh491 <andersonbhat...@gmail.com>
Date: Wed, 4 Jun 2025 14:34:05 +0530
Subject: [PATCH] Ensure clang-repl accepts all C keywords supported in all
 Clang language modes

---
 clang/lib/Parse/ParseTentative.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/clang/lib/Parse/ParseTentative.cpp 
b/clang/lib/Parse/ParseTentative.cpp
index 95cee824c40b7..f50bcd8ea90bb 100644
--- a/clang/lib/Parse/ParseTentative.cpp
+++ b/clang/lib/Parse/ParseTentative.cpp
@@ -1171,6 +1171,7 @@ Parser::isCXXDeclarationSpecifier(ImplicitTypenameContext 
AllowImplicitTypename,
   case tok::kw_inline:
   case tok::kw_virtual:
   case tok::kw_explicit:
+  case tok::kw__Noreturn:
 
     // Modules
   case tok::kw___module_private__:
@@ -1225,6 +1226,7 @@ Parser::isCXXDeclarationSpecifier(ImplicitTypenameContext 
AllowImplicitTypename,
     // GNU
   case tok::kw_restrict:
   case tok::kw__Complex:
+  case tok::kw__Imaginary:
   case tok::kw___attribute:
   case tok::kw___auto_type:
     return TPResult::True;

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to