annotate gcc/testsuite/gcc.dg/param-type-mismatch.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
1 /* { dg-options "-fdiagnostics-show-caret -Wpointer-sign" } */
111
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 /* A collection of calls where argument 2 is of the wrong type. */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 /* decl, with argname. */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 extern int callee_1 (int one, const char *two, float three); /* { dg-line callee_1 } */
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 int test_1 (int first, int second, float third)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 return callee_1 (first, second, third); /* { dg-warning "passing argument 2 of 'callee_1' makes pointer from integer without a cast" } */
kono
parents:
diff changeset
12 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
13 return callee_1 (first, second, third);
kono
parents:
diff changeset
14 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
15 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
16 int
111
kono
parents:
diff changeset
17 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
18 /* { dg-message "expected 'const char \\*' but argument is of type 'int'" "" { target *-*-* } callee_1 } */
kono
parents:
diff changeset
19 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
20 extern int callee_1 (int one, const char *two, float three);
kono
parents:
diff changeset
21 ~~~~~~~~~~~~^~~
kono
parents:
diff changeset
22 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
23 }
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 /* decl, without argname. */
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 extern int callee_2 (int, const char *, float); /* { dg-line callee_2 } */
kono
parents:
diff changeset
28
kono
parents:
diff changeset
29 int test_2 (int first, int second, float third)
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 return callee_2 (first, second, third); /* { dg-warning "passing argument 2 of 'callee_2' makes pointer from integer without a cast" } */
kono
parents:
diff changeset
32 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
33 return callee_2 (first, second, third);
kono
parents:
diff changeset
34 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
35 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
36 int
111
kono
parents:
diff changeset
37 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
38 /* { dg-message "expected 'const char \\*' but argument is of type 'int'" "" { target *-*-* } callee_2 } */
kono
parents:
diff changeset
39 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
40 extern int callee_2 (int, const char *, float);
kono
parents:
diff changeset
41 ^~~~~~~~~~~~
kono
parents:
diff changeset
42 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 /* defn, with argname. */
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 static int callee_3 (int one, const char *two, float three) /* { dg-line callee_3 } */
kono
parents:
diff changeset
48 {
kono
parents:
diff changeset
49 return callee_2 (one, two, three);
kono
parents:
diff changeset
50 }
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 int test_3 (int first, int second, float third)
kono
parents:
diff changeset
53 {
kono
parents:
diff changeset
54 return callee_3 (first, second, third); // { dg-warning "passing argument 2 of 'callee_3' makes pointer from integer without a cast" }
kono
parents:
diff changeset
55 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
56 return callee_3 (first, second, third);
kono
parents:
diff changeset
57 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
58 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
59 int
111
kono
parents:
diff changeset
60 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
61 /* { dg-message "expected 'const char \\*' but argument is of type 'int'" "" { target *-*-* } callee_3 } */
kono
parents:
diff changeset
62 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
63 static int callee_3 (int one, const char *two, float three)
kono
parents:
diff changeset
64 ~~~~~~~~~~~~^~~
kono
parents:
diff changeset
65 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
66 }
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 /* Trivial decl, with argname. */
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 extern int callee_4 (int one, float two, float three); /* { dg-line callee_4 } */
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 int test_4 (int first, const char *second, float third)
kono
parents:
diff changeset
73 {
kono
parents:
diff changeset
74 return callee_4 (first, second, third); /* { dg-error "incompatible type for argument 2 of 'callee_4'" } */
kono
parents:
diff changeset
75 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
76 return callee_4 (first, second, third);
kono
parents:
diff changeset
77 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
78 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
79 const char *
111
kono
parents:
diff changeset
80 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
81 /* { dg-message "expected 'float' but argument is of type 'const char \\*'" "" { target *-*-* } callee_4 } */
kono
parents:
diff changeset
82 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
83 extern int callee_4 (int one, float two, float three);
kono
parents:
diff changeset
84 ~~~~~~^~~
kono
parents:
diff changeset
85 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
86 }
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 /* Trivial decl, without argname. */
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 extern int callee_5 (int, float, float); /* { dg-line callee_5 } */
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 int test_5 (int first, const char *second, float third)
kono
parents:
diff changeset
93 {
kono
parents:
diff changeset
94 return callee_5 (first, second, third); /* { dg-error "incompatible type for argument 2 of 'callee_5'" } */
kono
parents:
diff changeset
95 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
96 return callee_5 (first, second, third);
kono
parents:
diff changeset
97 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
98 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
99 const char *
111
kono
parents:
diff changeset
100 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
101 /* { dg-message "expected 'float' but argument is of type 'const char \\*'" "" { target *-*-* } callee_5 } */
kono
parents:
diff changeset
102 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
103 extern int callee_5 (int, float, float);
kono
parents:
diff changeset
104 ^~~~~
kono
parents:
diff changeset
105 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
106 }
kono
parents:
diff changeset
107
kono
parents:
diff changeset
108 /* Callback with name. */
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 extern int callee_6 (int one, int (*two)(int, int), float three); /* { dg-line callee_6 } */
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 int test_6 (int first, int second, float third)
kono
parents:
diff changeset
113 {
kono
parents:
diff changeset
114 return callee_6 (first, second, third); /* { dg-warning "passing argument 2 of 'callee_6' makes pointer from integer without a cast" } */
kono
parents:
diff changeset
115 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
116 return callee_6 (first, second, third);
kono
parents:
diff changeset
117 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
118 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
119 int
111
kono
parents:
diff changeset
120 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
121 /* { dg-message " expected 'int \\(\\*\\)\\(int, int\\)' but argument is of type 'int'" "" { target *-*-* } callee_6 } */
kono
parents:
diff changeset
122 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
123 extern int callee_6 (int one, int (*two)(int, int), float three);
kono
parents:
diff changeset
124 ~~~~~~^~~~~~~~~~~~~~
kono
parents:
diff changeset
125 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
126 }
kono
parents:
diff changeset
127
kono
parents:
diff changeset
128 /* Callback without name. */
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 extern int callee_7 (int one, int (*)(int, int), float three); /* { dg-line callee_7 } */
kono
parents:
diff changeset
131
kono
parents:
diff changeset
132 int test_7 (int first, int second, float third)
kono
parents:
diff changeset
133 {
kono
parents:
diff changeset
134 return callee_7 (first, second, third); /* { dg-warning "passing argument 2 of 'callee_7' makes pointer from integer without a cast" } */
kono
parents:
diff changeset
135 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
136 return callee_7 (first, second, third);
kono
parents:
diff changeset
137 ^~~~~~
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
138 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
139 int
111
kono
parents:
diff changeset
140 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
141 /* { dg-message " expected 'int \\(\\*\\)\\(int, int\\)' but argument is of type 'int'" "" { target *-*-* } callee_7 } */
kono
parents:
diff changeset
142 /* { dg-begin-multiline-output "" }
kono
parents:
diff changeset
143 extern int callee_7 (int one, int (*)(int, int), float three);
kono
parents:
diff changeset
144 ^~~~~~~~~~~~~~~~~
kono
parents:
diff changeset
145 { dg-end-multiline-output "" } */
kono
parents:
diff changeset
146 }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
147
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
148 /* -Wincompatible-pointer-types for a parameter. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
149
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
150 extern int callee_8 (int one, float *two, float (three)); /* { dg-line callee_8 } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
151
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
152 int test_8 (int first, int *second, float third)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
153 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
154 return callee_8 (first, second, third); /* { dg-warning "passing argument 2 of 'callee_8' from incompatible pointer type" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
155 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
156 return callee_8 (first, second, third);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
157 ^~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
158 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
159 int *
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
160 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
161 /* { dg-message "expected 'float \\*' but argument is of type 'int \\*'" "" { target *-*-* } callee_8 } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
162 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
163 extern int callee_8 (int one, float *two, float (three));
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
164 ~~~~~~~^~~
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
165 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
166 }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
167
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
168 /* -Wpointer-sign for a parameter. */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
169
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
170 extern int callee_9 (int one, int *two, float (three)); /* { dg-line callee_9 } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
171
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
172 int test_9 (int first, unsigned int *second, float third)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
173 {
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
174 return callee_9 (first, second, third); /* { dg-warning "pointer targets in passing argument 2 of 'callee_9' differ in signedness" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
175 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
176 return callee_9 (first, second, third);
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
177 ^~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
178 |
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
179 unsigned int *
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
180 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
181 /* { dg-message "expected 'int \\*' but argument is of type 'unsigned int \\*'" "" { target *-*-* } callee_9 } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
182 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
183 extern int callee_9 (int one, int *two, float (three));
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
184 ~~~~~^~~
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
185 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
186 }