[clang] Sema: filter out invalid base-specifiers before attaching (PR #147213)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 8 22:07:10 PDT 2025


================
@@ -0,0 +1,13 @@
+// Tests that invalid base-specifiers no longer crash the compiler.
+// RUN: %clang_cc1 -std=c++20 -fsyntax-only -verify %s
+
+class X; // expected-note {{forward declaration of 'X'}} expected-note {{forward declaration of 'X'}}
+
+class A : X { // expected-error {{base class has incomplete type}}
+};
+
+class Y : int { // expected-error {{expected class name}}
+};
+
+class Z : X*, virtual int { // expected-error {{base class has incomplete type}} expected-error {{expected class name}}
+};
----------------
cor3ntin wrote:

```suggestion

namespace GH147186 {

class X; // expected-note {{forward declaration of 'X'}} expected-note {{forward declaration of 'X'}}

class A : X { // expected-error {{base class has incomplete type}}
};

class Y : int { // expected-error {{expected class name}}
};

class Z : X*, virtual int { // expected-error {{base class has incomplete type}} expected-error {{expected class name}}
};
}
```

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


More information about the cfe-commits mailing list