19fb7e98dSHaojian Wu // RUN: %clang_cc1 %s -std=c++20 -fsyntax-only -verify
29fb7e98dSHaojian Wu // RUN: %clang_cc1 %s -std=c++20 -fsyntax-only -verify -fno-recovery-ast
39fb7e98dSHaojian Wu 
49fb7e98dSHaojian Wu namespace NoCrash {
59fb7e98dSHaojian Wu struct ForwardDecl; // expected-note {{forward declaration of}}
69fb7e98dSHaojian Wu struct Foo {        // expected-note 2{{candidate constructor}}
79fb7e98dSHaojian Wu   ForwardDecl f;    // expected-error {{field has incomplete type}}
89fb7e98dSHaojian Wu };
99fb7e98dSHaojian Wu 
getFoo()109fb7e98dSHaojian Wu constexpr Foo getFoo() {
11*888673b6SJonas Devlieghere   Foo e = 123; // expected-error {{no viable conversion from 'int' to 'NoCrash::Foo'}}
129fb7e98dSHaojian Wu   return e;
139fb7e98dSHaojian Wu }
149fb7e98dSHaojian Wu }
15