annotate gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-4.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
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 "-Wno-attributes -fdiagnostics-show-caret" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 extern void __emit_warning (const char *message);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 __attribute__((always_inline))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 static void depth_0 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 __emit_warning ("message");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 __attribute__((always_inline))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 static void depth_1 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 depth_0 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 __attribute__((always_inline))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 static void depth_2 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 depth_1 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 __attribute__((always_inline))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 static void depth_3 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 depth_2 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 __attribute__((always_inline))
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 static void depth_4 (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 depth_3 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 int main()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 depth_4 ();
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 return 0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 /* Verify that the diagnostic subsytem describes the chain of inlining
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 when reporting the warning, for an example showing many levels of
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 inlining. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 /* { dg-regexp "In function 'depth_0'," "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 /* { dg-regexp " inlined from 'depth_1' at .+/diagnostic-test-inlining-4.c:15:3," "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 /* { dg-regexp " inlined from 'depth_2' at .+/diagnostic-test-inlining-4.c:21:3," "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 /* { dg-regexp " inlined from 'depth_3' at .+/diagnostic-test-inlining-4.c:27:3," "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 /* { dg-regexp " inlined from 'depth_4' at .+/diagnostic-test-inlining-4.c:33:3," "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 /* { dg-regexp " inlined from 'main' at .+/diagnostic-test-inlining-4.c:38:3:" "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 /* { dg-warning "3: message" "" { target *-*-* } 9 } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 __emit_warning ("message");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 ^~~~~~~~~~~~~~~~~~~~~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 { dg-end-multiline-output "" } */