teak-llvm/clang/test/Sema/cast-incomplete.c
David Majnemer e4e3e6a5bf [Sema] Tweak incomplete enum types on MSVC ABI targets
Enums without an explicit, fixed, underlying type are implicitly given a
fixed 'int' type for ABI compatibility with MSVC.  However, we can
enforce the standard-mandated rules on these types as-if we didn't know
this fact if the tag is not part of a definition.

llvm-svn: 249667
2015-10-08 07:45:35 +00:00

15 lines
502 B
C

// RUN: %clang_cc1 -fsyntax-only %s -verify
// PR5692
enum x; // expected-note {{forward declaration}}
extern struct y a; // expected-note {{forward declaration}}
extern union z b; // expected-note 2 {{forward declaration}}
void foo() {
(enum x)1; // expected-error {{cast to incomplete type}}
(struct y)a; // expected-error {{cast to incomplete type}}
(union z)b; // expected-error {{cast to incomplete type}}
(union z)1; // expected-error {{cast to incomplete type}}
}