xref: /llvm-project/clang/test/SemaCXX/crash-GH76228.cpp (revision 02a33b72fd21cdbf476d6bda72faa462e073e510)
1 // RUN: %clang_cc1 -std=c++20 -verify %s
2 // Check we don't crash on incomplete members and bases when handling parenthesized initialization.
3 class incomplete; // expected-note@-0 3  {{forward declaration of 'incomplete'}}
4 struct foo {
5   int a;
6   incomplete b;
7   // expected-error@-1 {{incomplete type}}
8 };
9 foo a1(0);
10 
11 struct one_int {
12     int a;
13 };
14 struct bar : one_int, incomplete {};
15 // expected-error@-1 {{incomplete type}}
16 bar a2(0);
17 
18 incomplete a3[3](1,2,3);
19 // expected-error@-1 {{incomplete type}}
20 
21 struct qux : foo {
22 };
23 qux a4(0);
24 
25 struct fred {
26     foo a[3];
27 };
28 fred a5(0);
29