Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/diag-aka-5a.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 #define IS_SYSTEM_HEADER | |
2 #include "diag-aka-5.h" | |
3 | |
4 typedef user_enum user_enum_copy; | |
5 | |
6 struct s { int i; }; | |
7 | |
8 user_enum ue1; | |
9 user_enum_copy ue2; | |
10 user_enum_ptr ue_ptr1; | |
11 user_enum *ue_ptr2; | |
12 const user_enum *const_ue_ptr1; | |
13 const user_enum_copy *const_ue_ptr2; | |
14 volatile user_enum *volatile_ue_ptr1; | |
15 volatile user_enum_copy *volatile_ue_ptr2; | |
16 __extension__ _Atomic user_enum *atomic_ue_ptr1; | |
17 __extension__ _Atomic user_enum_copy *atomic_ue_ptr2; | |
18 user_enum (*ue_array_ptr1)[10]; | |
19 user_enum_copy (*ue_array_ptr2)[10]; | |
20 user_enum (*ue_fn_ptr1) (void); | |
21 void (*ue_fn_ptr2) (user_enum); | |
22 void (*ue_fn_ptr3) (user_enum, ...); | |
23 user_enum_copy (*ue_fn_ptr4) (void); | |
24 void (*ue_fn_ptr5) (user_enum_copy); | |
25 void (*ue_fn_ptr6) (user_enum_copy, ...); | |
26 user_enum (*__attribute__((__transaction_unsafe__)) unsafe_ue_fn_ptr1) (void); | |
27 user_enum_copy (*__attribute__((__transaction_unsafe__)) unsafe_ue_fn_ptr2) (void); | |
28 | |
29 user_struct us1; | |
30 user_struct_copy us2; | |
31 user_struct_ptr us_ptr1; | |
32 user_struct *us_ptr2; | |
33 const user_struct *const_us_ptr1; | |
34 const user_struct_copy *const_us_ptr2; | |
35 | |
36 user_union uu1; | |
37 user_union_copy uu2; | |
38 user_union_ptr uu_ptr1; | |
39 user_union *uu_ptr2; | |
40 const user_union *const_uu_ptr1; | |
41 const user_union_copy *const_uu_ptr2; | |
42 | |
43 user_vector uv1; | |
44 user_vector_copy uv2; | |
45 user_vector_ptr uv_ptr1; | |
46 user_vector *uv_ptr2; | |
47 const user_vector *const_uv_ptr1; | |
48 const user_vector_copy *const_uv_ptr2; | |
49 | |
50 user_int ui1; | |
51 user_int_copy ui2; | |
52 user_int_ptr ui_ptr1; | |
53 user_int *ui_ptr2; | |
54 const user_int *const_ui_ptr1; | |
55 const user_int_copy *const_ui_ptr2; | |
56 volatile user_int *volatile_ui_ptr1; | |
57 volatile user_int_copy *volatile_ui_ptr2; | |
58 __extension__ _Atomic user_int *atomic_ui_ptr1; | |
59 __extension__ _Atomic user_int_copy *atomic_ui_ptr2; | |
60 user_int (*ui_array_ptr1)[10]; | |
61 user_int_copy (*ui_array_ptr2)[10]; | |
62 user_int (*ui_fn_ptr1) (void); | |
63 void (*ui_fn_ptr2) (user_int); | |
64 void (*ui_fn_ptr3) (user_int, ...); | |
65 user_int_copy (*ui_fn_ptr4) (void); | |
66 void (*ui_fn_ptr5) (user_int_copy); | |
67 void (*ui_fn_ptr6) (user_int_copy, ...); | |
68 user_int (*__attribute__((__transaction_unsafe__)) unsafe_ui_fn_ptr1) (void); | |
69 user_int_copy (*__attribute__((__transaction_unsafe__)) unsafe_ui_fn_ptr2) (void); | |
70 | |
71 void f (struct s s) | |
72 { | |
73 ue1 = s; /* { dg-error {assigning to type 'user_enum' from type 'struct s'} } */ | |
74 ue2 = s; /* { dg-error {assigning to type 'user_enum_copy' {aka 'user_enum'} from type 'struct s'} } */ | |
75 ue_ptr1 = &s; /* { dg-error {assignment to 'user_enum_ptr' {aka 'user_enum \*'} from incompatible pointer type 'struct s \*'} } */ | |
76 ue_ptr2 = &s; /* { dg-error {assignment to 'user_enum \*' from incompatible pointer type 'struct s \*'} } */ | |
77 const_ue_ptr1 = &s; /* { dg-error {assignment to 'const user_enum \*' from incompatible pointer type 'struct s \*'} } */ | |
78 const_ue_ptr2 = &s; /* { dg-error {assignment to 'const user_enum_copy \*' {aka 'const user_enum \*'} from incompatible pointer type 'struct s \*'} } */ | |
79 volatile_ue_ptr1 = &s; /* { dg-error {assignment to 'volatile user_enum \*' from incompatible pointer type 'struct s \*'} } */ | |
80 volatile_ue_ptr2 = &s; /* { dg-error {assignment to 'volatile user_enum_copy \*' {aka 'volatile user_enum \*'} from incompatible pointer type 'struct s \*'} } */ | |
81 atomic_ue_ptr1 = &s; /* { dg-error {assignment to '_Atomic user_enum \*' from incompatible pointer type 'struct s \*'} } */ | |
82 atomic_ue_ptr2 = &s; /* { dg-error {assignment to '_Atomic user_enum_copy \*' {aka '_Atomic user_enum \*'} from incompatible pointer type 'struct s \*'} } */ | |
83 ue_array_ptr1 = &s; /* { dg-error {assignment to 'user_enum \(\*\)\[10\]' from incompatible pointer type 'struct s \*'} } */ | |
84 ue_array_ptr2 = &s; /* { dg-error {assignment to 'user_enum_copy \(\*\)\[10\]' {aka 'user_enum \(\*\)\[10\]'} from incompatible pointer type 'struct s \*'} } */ | |
85 ue_fn_ptr1 = &s; /* { dg-error {assignment to 'user_enum \(\*\)\(void\)' from incompatible pointer type 'struct s \*'} } */ | |
86 ue_fn_ptr2 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_enum\)' from incompatible pointer type 'struct s \*'} } */ | |
87 ue_fn_ptr3 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_enum, \.\.\.\)' from incompatible pointer type 'struct s \*'} } */ | |
88 ue_fn_ptr4 = &s; /* { dg-error {assignment to 'user_enum_copy \(\*\)\(void\)' {aka 'user_enum \(\*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
89 ue_fn_ptr5 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_enum_copy\)' {aka 'void \(\*\)\(user_enum\)'} from incompatible pointer type 'struct s \*'} } */ | |
90 ue_fn_ptr6 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_enum_copy, \.\.\.\)' {aka 'void \(\*\)\(user_enum, \.\.\.\)'} from incompatible pointer type 'struct s \*'} } */ | |
91 unsafe_ue_fn_ptr1 = &s; /* { dg-error {assignment to 'user_enum \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)' from incompatible pointer type 'struct s \*'} } */ | |
92 unsafe_ue_fn_ptr2 = &s; /* { dg-error {assignment to 'user_enum_copy \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)' {aka 'user_enum \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
93 | |
94 us1 = s; /* { dg-error {assigning to type 'user_struct' from type 'struct s'} } */ | |
95 us2 = s; /* { dg-error {assigning to type 'user_struct_copy' {aka 'user_struct'} from type 'struct s'} } */ | |
96 us_ptr1 = &s; /* { dg-error {assignment to 'user_struct_ptr' {aka 'user_struct \*'} from incompatible pointer type 'struct s \*'} } */ | |
97 us_ptr2 = &s; /* { dg-error {assignment to 'user_struct \*' from incompatible pointer type 'struct s \*'} } */ | |
98 const_us_ptr1 = &s; /* { dg-error {assignment to 'const user_struct \*' from incompatible pointer type 'struct s \*'} } */ | |
99 const_us_ptr2 = &s; /* { dg-error {assignment to 'const user_struct_copy \*' {aka 'const user_struct \*'} from incompatible pointer type 'struct s \*'} } */ | |
100 | |
101 uu1 = s; /* { dg-error {assigning to type 'user_union' from type 'struct s'} } */ | |
102 uu2 = s; /* { dg-error {assigning to type 'user_union_copy' {aka 'user_union'} from type 'struct s'} } */ | |
103 uu_ptr1 = &s; /* { dg-error {assignment to 'user_union_ptr' {aka 'user_union \*'} from incompatible pointer type 'struct s \*'} } */ | |
104 uu_ptr2 = &s; /* { dg-error {assignment to 'user_union \*' from incompatible pointer type 'struct s \*'} } */ | |
105 const_uu_ptr1 = &s; /* { dg-error {assignment to 'const user_union \*' from incompatible pointer type 'struct s \*'} } */ | |
106 const_uu_ptr2 = &s; /* { dg-error {assignment to 'const user_union_copy \*' {aka 'const user_union \*'} from incompatible pointer type 'struct s \*'} } */ | |
107 | |
108 uv1 = s; /* { dg-error {assigning to type 'user_vector' from type 'struct s'} } */ | |
109 uv2 = s; /* { dg-error {assigning to type 'user_vector_copy' {aka 'user_vector'} from type 'struct s'} } */ | |
110 uv_ptr1 = &s; /* { dg-error {assignment to 'user_vector_ptr' {aka 'user_vector \*'} from incompatible pointer type 'struct s \*'} } */ | |
111 uv_ptr2 = &s; /* { dg-error {assignment to 'user_vector \*' from incompatible pointer type 'struct s \*'} } */ | |
112 const_uv_ptr1 = &s; /* { dg-error {assignment to 'const user_vector \*' from incompatible pointer type 'struct s \*'} } */ | |
113 const_uv_ptr2 = &s; /* { dg-error {assignment to 'const user_vector_copy \*' {aka 'const user_vector \*'} from incompatible pointer type 'struct s \*'} } */ | |
114 | |
115 ui1 = s; /* { dg-error {assigning to type 'user_int' {aka 'int'} from type 'struct s'} } */ | |
116 ui2 = s; /* { dg-error {assigning to type 'user_int_copy' {aka 'int'} from type 'struct s'} } */ | |
117 ui_ptr1 = &s; /* { dg-error {assignment to 'user_int_ptr' {aka 'int \*'} from incompatible pointer type 'struct s \*'} } */ | |
118 ui_ptr2 = &s; /* { dg-error {assignment to 'user_int \*' {aka 'int \*'} from incompatible pointer type 'struct s \*'} } */ | |
119 const_ui_ptr1 = &s; /* { dg-error {assignment to 'const user_int \*' {aka 'const int \*'} from incompatible pointer type 'struct s \*'} } */ | |
120 const_ui_ptr2 = &s; /* { dg-error {assignment to 'const user_int_copy \*' {aka 'const int \*'} from incompatible pointer type 'struct s \*'} } */ | |
121 volatile_ui_ptr1 = &s; /* { dg-error {assignment to 'volatile user_int \*' {aka 'volatile int \*'} from incompatible pointer type 'struct s \*'} } */ | |
122 volatile_ui_ptr2 = &s; /* { dg-error {assignment to 'volatile user_int_copy \*' {aka 'volatile int \*'} from incompatible pointer type 'struct s \*'} } */ | |
123 atomic_ui_ptr1 = &s; /* { dg-error {assignment to '_Atomic user_int \*' {aka '_Atomic int \*'} from incompatible pointer type 'struct s \*'} } */ | |
124 atomic_ui_ptr2 = &s; /* { dg-error {assignment to '_Atomic user_int_copy \*' {aka '_Atomic int \*'} from incompatible pointer type 'struct s \*'} } */ | |
125 ui_array_ptr1 = &s; /* { dg-error {assignment to 'user_int \(\*\)\[10\]' {aka 'int \(\*\)\[10\]'} from incompatible pointer type 'struct s \*'} } */ | |
126 ui_array_ptr2 = &s; /* { dg-error {assignment to 'user_int_copy \(\*\)\[10\]' {aka 'int \(\*\)\[10\]'} from incompatible pointer type 'struct s \*'} } */ | |
127 ui_fn_ptr1 = &s; /* { dg-error {assignment to 'user_int \(\*\)\(void\)' {aka 'int \(\*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
128 ui_fn_ptr2 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_int\)' {aka 'void \(\*\)\(int\)'} from incompatible pointer type 'struct s \*'} } */ | |
129 ui_fn_ptr3 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_int, \.\.\.\)' {aka 'void \(\*\)\(int, \.\.\.\)'} from incompatible pointer type 'struct s \*'} } */ | |
130 ui_fn_ptr4 = &s; /* { dg-error {assignment to 'user_int_copy \(\*\)\(void\)' {aka 'int \(\*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
131 ui_fn_ptr5 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_int_copy\)' {aka 'void \(\*\)\(int\)'} from incompatible pointer type 'struct s \*'} } */ | |
132 ui_fn_ptr6 = &s; /* { dg-error {assignment to 'void \(\*\)\(user_int_copy, \.\.\.\)' {aka 'void \(\*\)\(int, \.\.\.\)'} from incompatible pointer type 'struct s \*'} } */ | |
133 unsafe_ui_fn_ptr1 = &s; /* { dg-error {assignment to 'user_int \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)' {aka 'int \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
134 unsafe_ui_fn_ptr2 = &s; /* { dg-error {assignment to 'user_int_copy \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)' {aka 'int \(__attribute__\(\(transaction_unsafe\)\) \*\)\(void\)'} from incompatible pointer type 'struct s \*'} } */ | |
135 } |