[clang] [Clang] prevent incorrect rejection of auto with reordered declaration specifiers in C23 (PR #177865)

Oleksandr Tarasiuk via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 30 03:33:34 PST 2026


================
@@ -4093,7 +4093,26 @@ void Parser::ParseDeclarationSpecifiers(
       break;
     case tok::kw_auto:
       if (getLangOpts().CPlusPlus11 || getLangOpts().C23) {
-        if (isKnownToBeTypeSpecifier(GetLookAheadToken(1))) {
+        auto MayBeTypeSpecifier = [&]() {
+          if (getLangOpts().C23 && DS.hasTypeSpecifier() &&
+              DS.getTypeSpecType() != DeclSpec::TST_auto &&
+              DS.getConstexprSpecifier() == ConstexprSpecKind::Unspecified)
+            return true;
+
+          unsigned I = 1;
+          while (true) {
----------------
a-tarasyuk wrote:

@AaronBallman I think this should apply only in C23 mode, so I’ve added that restriction., thanks

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


More information about the cfe-commits mailing list