Author: Osama Abdelkader
Date: 2026-07-14T15:02:39+02:00
New Revision: 226acaf7aeeda64a6e4e55d21f586ffe97a72fc8

URL: 
https://github.com/llvm/llvm-project/commit/226acaf7aeeda64a6e4e55d21f586ffe97a72fc8
DIFF: 
https://github.com/llvm/llvm-project/commit/226acaf7aeeda64a6e4e55d21f586ffe97a72fc8.diff

LOG: Fix auto type-specifier conflict crash (#209308)

Clear owned type state when an invalid C++ auto/type-specifier conflict
is converted to an error so invalid declarations cannot trip DeclSpec
invariants.

Fixes https://github.com/llvm/llvm-project/issues/209000

Added: 
    

Modified: 
    clang/lib/Sema/DeclSpec.cpp
    clang/test/SemaCXX/auto-cxx0x.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp
index 3c882bc3a1003..4d20657d5e517 100644
--- a/clang/lib/Sema/DeclSpec.cpp
+++ b/clang/lib/Sema/DeclSpec.cpp
@@ -1349,6 +1349,7 @@ void DeclSpec::CheckTypeSpec(Sema &S, const 
PrintingPolicy &Policy) {
       }
       // Mark as error to prevent further processing
       TypeSpecType = TST_error;
+      TypeSpecOwned = false;
     } else if (!S.getLangOpts().CPlusPlus) {
       // For C, C23, etc., convert 'auto' to storage class specifier
       // (This is already handled above for C23, but keep for other C dialects)

diff  --git a/clang/test/SemaCXX/auto-cxx0x.cpp 
b/clang/test/SemaCXX/auto-cxx0x.cpp
index a51b4798cbcb3..fa953f35723ef 100644
--- a/clang/test/SemaCXX/auto-cxx0x.cpp
+++ b/clang/test/SemaCXX/auto-cxx0x.cpp
@@ -11,6 +11,9 @@ void f() {
   auto int arr[10]; // expected-error {{'auto' cannot be combined with a type 
specifier}}
 }
 
+struct PR209000 {
+} auto; // expected-error {{'auto' cannot be combined with a type specifier}}
+
 typedef auto PR25449(); // expected-error {{'auto' not allowed in typedef}}
 
 thread_local auto x; // expected-error {{requires an initializer}}


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to