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