annotate gcc/testsuite/c-c++-common/Wcast-function-type.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* { dg-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-options "-Wcast-function-type" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 int f(long);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 typedef int (f1)(long);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 typedef int (f2)(void*);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 #ifdef __cplusplus
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 typedef int (f3)(...);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 typedef void (f4)(...);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 #else
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 typedef int (f3)();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 typedef void (f4)();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 typedef void (f5)(void);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 f1 *a;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 f2 *b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 f3 *c;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 f4 *d;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 f5 *e;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 void
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 foo (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 a = (f1 *) f; /* { dg-bogus "incompatible function types" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 b = (f2 *) f; /* { dg-warning "incompatible function types" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 c = (f3 *) f; /* { dg-bogus "incompatible function types" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 d = (f4 *) f; /* { dg-warning "incompatible function types" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 e = (f5 *) f; /* { dg-bogus "incompatible function types" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 }