annotate gcc/testsuite/gcc.dg/attr-noinline.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
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 "-O2 -finline-functions -fno-ipa-icf" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 extern int t();
kono
parents:
diff changeset
5
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
6 static inline void __attribute__((__noinline__)) function_definition(void) {t();} /* { dg-warning "inline function \[^\n\]* given attribute 'noinline'" } */
111
kono
parents:
diff changeset
7
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
8 static inline void __attribute__((__noinline__)) function_declaration_both_before(void); /* { dg-warning "inline function \[^\n\]* given attribute 'noinline'" } */
111
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 static void function_declaration_both_before(void) {t();}
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 static void function_declaration_both_after(void);
kono
parents:
diff changeset
13
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
14 static inline void __attribute__((__noinline__)) function_declaration_both_after(void); /* { dg-warning "(inline function \[^\n\]* given attribute .noinline.|declared inline after its definition)" } */
111
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 static void function_declaration_both_after(void) {t();}
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 static void function_declaration_noinline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" } */
kono
parents:
diff changeset
19
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
20 static inline void function_declaration_noinline_before(void) {t();} /* { dg-warning "follows declaration with attribute .noinline." } */
111
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 static inline void function_declaration_noinline_after(void) {t();} /* { dg-message "note: previous definition" } */
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 static void function_declaration_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 static inline void function_declaration_inline_before(void); /* { dg-message "note: previous declaration" } */
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 static void __attribute__((__noinline__)) function_declaration_inline_before(void) {t();} /* { dg-warning "follows inline declaration" } */
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 static inline void function_declaration_inline_noinline_before(void); /* { dg-message "note: previous declaration" } */
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 static void function_declaration_inline_noinline_before(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 static void function_declaration_inline_noinline_before(void) {t();}
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 static inline void function_declaration_inline_noinline_after(void);
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 static void function_declaration_inline_noinline_after(void) {t();} /* { dg-message "note: previous definition" } */
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 static void function_declaration_inline_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 static void function_declaration_noinline_inline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" } */
kono
parents:
diff changeset
43
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
44 static inline void function_declaration_noinline_inline_before(void); /* { dg-warning "follows declaration with attribute .noinline." } */
111
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 static void function_declaration_noinline_inline_before(void) {t();}
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 void f () {
kono
parents:
diff changeset
49 function_definition ();
kono
parents:
diff changeset
50 function_declaration_both_before ();
kono
parents:
diff changeset
51 function_declaration_both_after ();
kono
parents:
diff changeset
52 function_declaration_noinline_before ();
kono
parents:
diff changeset
53 function_declaration_noinline_after ();
kono
parents:
diff changeset
54 function_declaration_inline_before ();
kono
parents:
diff changeset
55 function_declaration_inline_noinline_before ();
kono
parents:
diff changeset
56 function_declaration_inline_noinline_after ();
kono
parents:
diff changeset
57 function_declaration_noinline_inline_before ();
kono
parents:
diff changeset
58 }
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 /* { dg-final { scan-assembler "function_definition" } } */
kono
parents:
diff changeset
61 /* { dg-final { scan-assembler "function_declaration_both_before" } } */
kono
parents:
diff changeset
62 /* { dg-final { scan-assembler "function_declaration_both_after" } } */
kono
parents:
diff changeset
63 /* { dg-final { scan-assembler "function_declaration_noinline_before" } } */
kono
parents:
diff changeset
64 /* { dg-final { scan-assembler "function_declaration_noinline_after" } } */
kono
parents:
diff changeset
65 /* { dg-final { scan-assembler "function_declaration_inline_before" } } */
kono
parents:
diff changeset
66 /* { dg-final { scan-assembler "function_declaration_inline_noinline_before" } } */
kono
parents:
diff changeset
67 /* { dg-final { scan-assembler "function_declaration_inline_noinline_after" } } */
kono
parents:
diff changeset
68 /* { dg-final { scan-assembler "function_declaration_noinline_inline_before" } } */