annotate gcc/testsuite/gcc.dg/pr61162-2.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
111
kono
parents:
diff changeset
1 /* PR c/61162 */
kono
parents:
diff changeset
2 /* { dg-do compile } */
kono
parents:
diff changeset
3 /* { dg-options "-Wc++-compat -Wpointer-sign -Wpedantic" } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 enum e { A };
kono
parents:
diff changeset
6 struct s { int a; };
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 enum e
kono
parents:
diff changeset
9 fn1 (void)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 return 0; /* { dg-warning "10:enum conversion from 'int' to 'enum e' in return" } */
kono
parents:
diff changeset
12 }
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 int
kono
parents:
diff changeset
15 fn2 (struct s s)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 return s; /* { dg-error "10:incompatible types when returning" } */
kono
parents:
diff changeset
18 }
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 void
kono
parents:
diff changeset
21 fn3 (void)
kono
parents:
diff changeset
22 {
kono
parents:
diff changeset
23 return 3; /* { dg-warning "10:in function returning void" } */
kono
parents:
diff changeset
24 }
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 int
kono
parents:
diff changeset
27 fn4 (int *a)
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 return a; /* { dg-warning "10:returning 'int \\*' from a function with return type 'int' makes integer from pointer without a cast" } */
kono
parents:
diff changeset
30 }
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 int *
kono
parents:
diff changeset
33 fn5 (int a)
kono
parents:
diff changeset
34 {
kono
parents:
diff changeset
35 return a; /* { dg-warning "10:returning 'int' from a function with return type 'int \\*' makes pointer from integer without a cast" } */
kono
parents:
diff changeset
36 }
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 unsigned int *
kono
parents:
diff changeset
39 fn6 (int *i)
kono
parents:
diff changeset
40 {
kono
parents:
diff changeset
41 return i; /* { dg-warning "10:pointer targets in returning 'int \\*' from a function with return type 'unsigned int \\*' differ" } */
kono
parents:
diff changeset
42 }
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 void *
kono
parents:
diff changeset
45 fn7 (void (*fp) (void))
kono
parents:
diff changeset
46 {
kono
parents:
diff changeset
47 return fp; /* { dg-warning "10:ISO C forbids return between function pointer" } */
kono
parents:
diff changeset
48 }