annotate gcc/testsuite/gcc.dg/qual-return-5.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test qualifiers on function return types after DR#423: those
kono
parents:
diff changeset
2 qualifiers are now ignored for all purposes (but _Atomic is not,
kono
parents:
diff changeset
3 for this purpose, a qualifier). */
kono
parents:
diff changeset
4 /* { dg-do compile } */
kono
parents:
diff changeset
5 /* { dg-options "-std=c11 -pedantic-errors" } */
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 int f1 (void);
kono
parents:
diff changeset
8 const int f1 (void);
kono
parents:
diff changeset
9 volatile int f1 (void) { return 0; }
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 int *restrict f2 (void) { return 0; }
kono
parents:
diff changeset
12 int *f2 (void);
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 const volatile long f3 (void);
kono
parents:
diff changeset
15 long f3 (void);
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 const volatile void f4 (void) { }
kono
parents:
diff changeset
18 void f4 (void);
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 _Atomic int f5 (void); /* { dg-message "previous declaration" } */
kono
parents:
diff changeset
21 int f5 (void); /* { dg-error "conflicting" } */
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 int f6 (void); /* { dg-message "previous declaration" } */
kono
parents:
diff changeset
24 _Atomic int f6 (void) { return 0; } /* { dg-error "conflicting" } */
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 /* The standard seems unclear regarding the case where restrict is
kono
parents:
diff changeset
27 applied to a function return type that may not be
kono
parents:
diff changeset
28 restrict-qualified; assume here that it is disallowed. */
kono
parents:
diff changeset
29 restrict int f7 (void); /* { dg-error "restrict" } */
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 typedef void FT (void);
kono
parents:
diff changeset
32 FT *restrict f8 (void); /* { dg-error "restrict" } */