annotate gcc/testsuite/gcc.dg/attr-invalid.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 /* { dg-do compile } */
kono
parents:
diff changeset
2 /* { dg-options "" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #define CONCAT_(A,B) A ## B
kono
parents:
diff changeset
5 #define CONCAT(A,B) CONCAT_(A,B)
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #define ATTR __attribute__((AT))
kono
parents:
diff changeset
8 #define ATSYM(suf) CONCAT (AT, CONCAT_ (_, suf))
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 #define AT noinline
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 struct ATSYM(struct) {
kono
parents:
diff changeset
17 char dummy ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
18 } ATTR; /* { dg-warning "does not apply to types" } */
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 int ATSYM(fn_knrarg) (arg)
kono
parents:
diff changeset
23 int arg ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
24 { return 0; }
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 int ATSYM(fn_vars) (void) {
kono
parents:
diff changeset
29 static int svar ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
30 auto int lvar ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
31 return 0;
kono
parents:
diff changeset
32 }
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 #undef AT
kono
parents:
diff changeset
36 #define AT used
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 typedef int ATSYM(type) ATTR; /* used attribute is no longer
kono
parents:
diff changeset
39 ignored. */
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 typedef int (*ATSYM(fntype))(void) ATTR; /* used attribute is no
kono
parents:
diff changeset
42 longer ignored. */
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 struct ATSYM(struct) {
kono
parents:
diff changeset
45 char dummy ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
46 } ATTR; /* { dg-warning "does not apply to types" } */
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 int ATSYM(var) ATTR;
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 int ATSYM(fn_knrarg) (arg)
kono
parents:
diff changeset
51 int arg ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
52 { return 0; }
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 int ATSYM(fn_vars) (void) {
kono
parents:
diff changeset
57 static int svar ATTR;
kono
parents:
diff changeset
58 auto int lvar ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
59 return 0;
kono
parents:
diff changeset
60 }
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 /* PR 28287 */
kono
parents:
diff changeset
64 /* These are invalid on all targets. Applying to PARM_ or FIELD_DECL
kono
parents:
diff changeset
65 also caused a tree checking ice on targets that support weak, */
kono
parents:
diff changeset
66 #undef AT
kono
parents:
diff changeset
67 #define AT weak
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 struct ATSYM(struct) {
kono
parents:
diff changeset
74 char dummy ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
75 };
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 int ATSYM(fn_knrarg) (arg)
kono
parents:
diff changeset
78 int arg ATTR; /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
79 { return 0; }
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 /* PR target/28648 */
kono
parents:
diff changeset
85 /* These are invalid on all targets. Applying to PARM_ or FIELD_DECL
kono
parents:
diff changeset
86 also caused a tree checking ice on targets that support dllimport. */
kono
parents:
diff changeset
87 #undef AT
kono
parents:
diff changeset
88 #define AT dllimport
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 typedef int ATSYM(type) ATTR; /* { dg-warning "attribute |directive ignored" } */
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute |directive ignored" } */
kono
parents:
diff changeset
93
kono
parents:
diff changeset
94 struct ATSYM(struct) {
kono
parents:
diff changeset
95 char dummy ATTR; /* { dg-warning "attribute |directive ignored" } */
kono
parents:
diff changeset
96 };
kono
parents:
diff changeset
97
kono
parents:
diff changeset
98 int ATSYM(fn_knrarg) (arg)
kono
parents:
diff changeset
99 int arg ATTR; /* { dg-warning "attribute |directive ignored" } */
kono
parents:
diff changeset
100 { return 0; }
kono
parents:
diff changeset
101
kono
parents:
diff changeset
102 int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute |directive ignored" } */