1b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman// RUN: %clang_cc1 -fsyntax-only %s -verify 2b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman// PR5692 3b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman 4b05de1e40a134b5f47a224577e189dca3872f423Eli Friedmanenum x; // expected-note {{forward declaration}} 5b05de1e40a134b5f47a224577e189dca3872f423Eli Friedmanextern struct y a; // expected-note {{forward declaration}} 6b05de1e40a134b5f47a224577e189dca3872f423Eli Friedmanextern union z b; // expected-note 2 {{forward declaration}} 7b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman 8b05de1e40a134b5f47a224577e189dca3872f423Eli Friedmanvoid foo() { 9b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman (enum x)1; // expected-error {{cast to incomplete type}} 10b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman (struct y)a; // expected-error {{cast to incomplete type}} 11b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman (union z)b; // expected-error {{cast to incomplete type}} 12b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman (union z)1; // expected-error {{cast to incomplete type}} 13b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman} 14b05de1e40a134b5f47a224577e189dca3872f423Eli Friedman 15