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 Wuconstexpr 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