[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