mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 19:45:40 -04:00

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
15 lines
502 B
C
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}}
|
|
}
|
|
|