[clang] [Clang] Fixed the behavior of C23 auto when an array type was specified for a `char *` (PR #189722)

Tony Guillot via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 1 07:44:20 PDT 2026


================
@@ -107,12 +107,11 @@ void test_misc(void) {
   auto something;                           // expected-error {{declaration of variable 'something' with deduced type 'auto' requires an initializer}}
   auto test_char = 'A';
   auto test_char_ptr = "test";
-  auto test_char_ptr2[] = "another test";   // expected-warning {{type inference of a declaration other than a plain identifier with optional trailing attributes is a Clang extension}}
+  auto test_char_ptr2[] = "another test";   // expected-error {{variable 'test_char_ptr2' with type 'auto[]' has incompatible initializer of type 'char[13]'}}
----------------
to268 wrote:

That is because we use the same diagnostic message as C++:
https://godbolt.org/z/zsrGaaj88
We could decide that we do not want the same diagnostic message as C++ and handle it differently.

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


More information about the cfe-commits mailing list