annotate gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.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 "-O -fdiagnostics-show-caret -fdiagnostics-show-line-numbers" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 /* This is a collection of unittests for diagnostic_show_locus;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 see the overview in diagnostic_plugin_test_show_locus.c.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 In particular, note the discussion of why we need a very long line here:
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 and that we can't use macros in this file. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 void test_simple (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 myvar = myvar.x; /* { dg-warning "test" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 14 | myvar = myvar.x;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 | ~~~~~^~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 void test_multiline (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 x = (first_function ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 + second_function ()); /* { dg-warning "test" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 26 | x = (first_function ()
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 | ~~~~~~~~~~~~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 27 | + second_function ());
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33 | ^ ~~~~~~~~~~~~~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 | |
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 | label
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 void test_very_wide_line (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 float f = foo * bar; /* { dg-warning "95: test" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 | 0 0 0 0 0 1 1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 | 5 6 7 8 9 0 1
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 | 3456789012345678901234567890123456789012345678901234567890123456789012
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 43 | float f = foo * bar;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49 | ~~~~^~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 | |
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51 | label 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 | bar * foo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 /* Unit test for rendering of insertion fixit hints
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 (example taken from PR 62316). */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 void test_fixit_insert (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 int a[2][2] = { 0, 1 , 2, 3 }; /* { dg-warning "insertion hints" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 63 | int a[2][2] = { 0, 1 , 2, 3 };
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 | ^~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 | { }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 /* Unit test for rendering of "remove" fixit hints. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 void test_fixit_remove (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 int a;; /* { dg-warning "example of a removal hint" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 77 | int a;;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
80 | ^
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
81 | -
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
82 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
83 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
84 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
85
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
86 /* Unit test for rendering of "replace" fixit hints. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
87
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
88 void test_fixit_replace (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
89 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
90 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
91 gtk_widget_showall (dlg); /* { dg-warning "example of a replacement hint" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
92 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
93 91 | gtk_widget_showall (dlg);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
94 | ^~~~~~~~~~~~~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
95 | gtk_widget_show_all
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
96 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
97 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
98 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
99
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
100
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
101 /* Unit test for rendering of fix-it hints that add new lines. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
102
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
103 void test_fixit_insert_newline (void)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
104 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
105 #if 0
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
106 switch (op)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
107 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
108 case 'a':
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
109 x = a;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
110 case 'b': /* { dg-warning "newline insertion" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
111 x = b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
112 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
113 /* { dg-begin-multiline-output "" }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
114 109 | x = a;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
115 +++ |+ break;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
116 110 | case 'b':
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
117 | ^~~~~~~~
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
118 { dg-end-multiline-output "" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
119 #endif
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
120 }