1 typedef struct struct_wrapper
{ int i
; } struct_wrapper
;
2 typedef struct { int i
; } anon_struct_wrapper
;
4 typedef union union_wrapper
{ int i
; } union_wrapper
;
5 typedef union { int i
; } anon_union_wrapper
;
7 typedef enum enum_wrapper
{ A
, B
} enum_wrapper
;
8 typedef enum { C
, D
} anon_enum_wrapper
;
10 void test_struct_wrapper (struct_wrapper y
, int x
)
12 struct_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'struct_wrapper \*' from incompatible pointer type 'int \*'} } */
13 const struct_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const struct_wrapper \*' from incompatible pointer type 'int \*'} } */
14 volatile struct_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile struct_wrapper \*' from incompatible pointer type 'int \*'} } */
15 struct_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'struct_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
16 struct_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'struct_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
17 int (*f2
)(struct_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(struct_wrapper\)' from incompatible pointer type 'int \*'} } */
18 y
= x
; /* { dg-error {incompatible types when assigning to type 'struct_wrapper' from type 'int'} } */
21 void test_anon_struct_wrapper (anon_struct_wrapper y
, int x
)
23 anon_struct_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'anon_struct_wrapper \*' from incompatible pointer type 'int \*'} } */
24 const anon_struct_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const anon_struct_wrapper \*' from incompatible pointer type 'int \*'} } */
25 volatile anon_struct_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile anon_struct_wrapper \*' from incompatible pointer type 'int \*'} } */
26 anon_struct_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'anon_struct_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
27 anon_struct_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'anon_struct_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
28 int (*f2
)(anon_struct_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(anon_struct_wrapper\)' from incompatible pointer type 'int \*'} } */
29 y
= x
; /* { dg-error {incompatible types when assigning to type 'anon_struct_wrapper' from type 'int'} } */
32 void test_union_wrapper (union_wrapper y
, int x
)
34 union_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'union_wrapper \*' from incompatible pointer type 'int \*'} } */
35 const union_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const union_wrapper \*' from incompatible pointer type 'int \*'} } */
36 volatile union_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile union_wrapper \*' from incompatible pointer type 'int \*'} } */
37 union_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'union_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
38 union_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'union_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
39 int (*f2
)(union_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(union_wrapper\)' from incompatible pointer type 'int \*'} } */
40 y
= x
; /* { dg-error {incompatible types when assigning to type 'union_wrapper' from type 'int'} } */
43 void test_anon_union_wrapper (anon_union_wrapper y
, int x
)
45 anon_union_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'anon_union_wrapper \*' from incompatible pointer type 'int \*'} } */
46 const anon_union_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const anon_union_wrapper \*' from incompatible pointer type 'int \*'} } */
47 volatile anon_union_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile anon_union_wrapper \*' from incompatible pointer type 'int \*'} } */
48 anon_union_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'anon_union_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
49 anon_union_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'anon_union_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
50 int (*f2
)(anon_union_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(anon_union_wrapper\)' from incompatible pointer type 'int \*'} } */
51 y
= x
; /* { dg-error {incompatible types when assigning to type 'anon_union_wrapper' from type 'int'} } */
54 void test_enum_wrapper (enum_wrapper y
, int x
)
56 enum_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'enum_wrapper \*' from incompatible pointer type 'int \*'} } */
57 const enum_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const enum_wrapper \*' from incompatible pointer type 'int \*'} } */
58 volatile enum_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile enum_wrapper \*' from incompatible pointer type 'int \*'} } */
59 enum_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'enum_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
60 enum_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'enum_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
61 int (*f2
)(enum_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(enum_wrapper\)' from incompatible pointer type 'int \*'} } */
64 void test_anon_enum_wrapper (anon_enum_wrapper y
, int x
)
66 anon_enum_wrapper
*ptr
= &x
; /* { dg-error {initialization of 'anon_enum_wrapper \*' from incompatible pointer type 'int \*'} } */
67 const anon_enum_wrapper
*const_ptr
= &x
; /* { dg-error {initialization of 'const anon_enum_wrapper \*' from incompatible pointer type 'int \*'} } */
68 volatile anon_enum_wrapper
*volatile_ptr
= &x
; /* { dg-error {initialization of 'volatile anon_enum_wrapper \*' from incompatible pointer type 'int \*'} } */
69 anon_enum_wrapper (*aptr
)[10] = &x
; /* { dg-error {initialization of 'anon_enum_wrapper \(\*\)\[10\]' from incompatible pointer type 'int \*'} } */
70 anon_enum_wrapper (*f1
)(int) = &x
; /* { dg-error {initialization of 'anon_enum_wrapper \(\*\)\(int\)' from incompatible pointer type 'int \*'} } */
71 int (*f2
)(anon_enum_wrapper
) = &x
; /* { dg-error {initialization of 'int \(\*\)\(anon_enum_wrapper\)' from incompatible pointer type 'int \*'} } */