[clang] [clang] Reject 'auto' storage class with type specifier in C++ (PR #166004)

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 4 11:35:34 PST 2025


================
@@ -0,0 +1,22 @@
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++14 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++17 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++23 %s
+
+// Test that 'auto' cannot be combined with a type specifier in C++.
+void f() {
+  auto int x = 1;        // expected-error {{'auto' cannot be combined with a type specifier}}
----------------
zygoloid wrote:

We can definitely detect that there's both an `auto` here and another kind of type-specifier during parsing. (We don't even have a way to represent that combination in an AST, so we can't detect this during instantiation.)

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


More information about the cfe-commits mailing list