llvm/clang/test/SemaCXX/crash-GH76228.cpp

// RUN: %clang_cc1 -std=c++20 -verify %s
// Check we don't crash on incomplete members and bases when handling parenthesized initialization.
class incomplete; // expected-note@-0 3  {{forward declaration of 'incomplete'}}
struct foo {
  int a;
  incomplete b;
  // expected-error@-1 {{incomplete type}}
};
foo a1(0);

struct one_int {
    int a;
};
struct bar : one_int, incomplete {};
// expected-error@-1 {{incomplete type}}
bar a2(0);

incomplete a3[3](1,2,3);
// expected-error@-1 {{incomplete type}}

struct qux : foo {
};
qux a4(0);

struct fred {
    foo a[3];
};
fred a5(0);