Skip to content

Commit 12249a8

Browse files
authored
Add diagnostics for unused literal or identifier, closes hsutter#364 (hsutter#365)
In compount statement when there is an literal or identifier followed by semicolon it is treated as unused. For the following code: ```cpp x; ``` The following error is reported: ``` error: unused literal or identifier (at 'x') ```
1 parent d6bca53 commit 12249a8

File tree

5 files changed

+235
-364
lines changed

5 files changed

+235
-364
lines changed
Lines changed: 76 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
11
void literals_cpp1() {
22
// integers
3-
123;
4-
123u;
5-
123ul;
6-
123ull;
7-
123l;
8-
123ll;
9-
123'456ll;
10-
123;
11-
123U;
12-
123UL;
13-
123ULL;
14-
123L;
15-
123LL;
16-
123'456LL;
3+
std::cout << 123 << std::endl;
4+
std::cout << 123u << std::endl;
5+
std::cout << 123ul << std::endl;
6+
std::cout << 123ull << std::endl;
7+
std::cout << 123l << std::endl;
8+
std::cout << 123ll << std::endl;
9+
std::cout << 123'456ll << std::endl;
10+
std::cout << 123 << std::endl;
11+
std::cout << 123U << std::endl;
12+
std::cout << 123UL << std::endl;
13+
std::cout << 123ULL << std::endl;
14+
std::cout << 123L << std::endl;
15+
std::cout << 123LL << std::endl;
16+
std::cout << 123'456LL << std::endl;
1717
// float points
18-
123'456.0f;
19-
123'456.f;
20-
456.0;
21-
456.;
22-
1.0e10;
23-
1.0e+10;
24-
1.0e-10;
25-
1.0e-10f;
26-
1.e-10;
27-
1.e-10f;
28-
1e-10;
29-
1e-10f;
30-
1e-1'0;
31-
123'456.0F;
32-
123'456.F;
33-
456.0;
34-
456.;
35-
1.0E10;
36-
1.0E+10;
37-
1.0E-10;
38-
1.0E-10F;
39-
1.E-10;
40-
1.E-10F;
41-
1E-10;
42-
1E-10F;
43-
1E-1'0;
18+
std::cout << 123'456.0f << std::endl;
19+
std::cout << 123'456.f << std::endl;
20+
std::cout << 456.0 << std::endl;
21+
std::cout << 456. << std::endl;
22+
std::cout << 1.0e10 << std::endl;
23+
std::cout << 1.0e+10 << std::endl;
24+
std::cout << 1.0e-10 << std::endl;
25+
std::cout << 1.0e-10f << std::endl;
26+
std::cout << 1.e-10 << std::endl;
27+
std::cout << 1.e-10f << std::endl;
28+
std::cout << 1e-10 << std::endl;
29+
std::cout << 1e-10f << std::endl;
30+
std::cout << 1e-1'0 << std::endl;
31+
std::cout << 123'456.0F << std::endl;
32+
std::cout << 123'456.F << std::endl;
33+
std::cout << 456.0 << std::endl;
34+
std::cout << 456. << std::endl;
35+
std::cout << 1.0E10 << std::endl;
36+
std::cout << 1.0E+10 << std::endl;
37+
std::cout << 1.0E-10 << std::endl;
38+
std::cout << 1.0E-10F << std::endl;
39+
std::cout << 1.E-10 << std::endl;
40+
std::cout << 1.E-10F << std::endl;
41+
std::cout << 1E-10 << std::endl;
42+
std::cout << 1E-10F << std::endl;
43+
std::cout << 1E-1'0 << std::endl;
4444
// invalid
4545
// 456f
4646
// (void)1e-10.0f;
@@ -56,39 +56,39 @@ void literals_cpp1() {
5656

5757
literals_cpp2: () = {
5858
// integers
59-
123;
60-
123u;
61-
123ul;
62-
123ull;
63-
123l;
64-
123ll;
65-
123'456ll;
66-
123;
67-
123U;
68-
123UL;
69-
123ULL;
70-
123L;
71-
123LL;
72-
123'456LL;
59+
std::cout << 123 << std::endl;
60+
std::cout << 123u << std::endl;
61+
std::cout << 123ul << std::endl;
62+
std::cout << 123ull << std::endl;
63+
std::cout << 123l << std::endl;
64+
std::cout << 123ll << std::endl;
65+
std::cout << 123'456ll << std::endl;
66+
std::cout << 123 << std::endl;
67+
std::cout << 123U << std::endl;
68+
std::cout << 123UL << std::endl;
69+
std::cout << 123ULL << std::endl;
70+
std::cout << 123L << std::endl;
71+
std::cout << 123LL << std::endl;
72+
std::cout << 123'456LL << std::endl;
7373
// float points
74-
123'456.0f;
75-
456.0;
76-
1.0e10;
77-
1.0e+10;
78-
1.0e-10;
79-
1.0e-10f;
80-
1e-10;
81-
1e-10f;
82-
1e-1'0;
83-
123'456.0F;
84-
456.0;
85-
1.0E10;
86-
1.0E+10;
87-
1.0E-10;
88-
1.0E-10F;
89-
1E-10;
90-
1E-10F;
91-
1E-1'0;
74+
std::cout << 123'456.0f << std::endl;
75+
std::cout << 456.0 << std::endl;
76+
std::cout << 1.0e10 << std::endl;
77+
std::cout << 1.0e+10 << std::endl;
78+
std::cout << 1.0e-10 << std::endl;
79+
std::cout << 1.0e-10f << std::endl;
80+
std::cout << 1e-10 << std::endl;
81+
std::cout << 1e-10f << std::endl;
82+
std::cout << 1e-1'0 << std::endl;
83+
std::cout << 123'456.0F << std::endl;
84+
std::cout << 456.0 << std::endl;
85+
std::cout << 1.0E10 << std::endl;
86+
std::cout << 1.0E+10 << std::endl;
87+
std::cout << 1.0E-10 << std::endl;
88+
std::cout << 1.0E-10F << std::endl;
89+
std::cout << 1E-10 << std::endl;
90+
std::cout << 1E-10F << std::endl;
91+
std::cout << 1E-1'0 << std::endl;
9292
// invalid
9393
// 456f
9494
// (void)1e-10.0f;
@@ -111,4 +111,7 @@ literals_cpp2: () = {
111111
// 1.E-10F;
112112
}
113113

114-
main: ()->int = { }
114+
main: ()->int = {
115+
literals_cpp1();
116+
literals_cpp2();
117+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
123
2+
123
3+
123
4+
123
5+
123
6+
123
7+
123456
8+
123
9+
123
10+
123
11+
123
12+
123
13+
123
14+
123456
15+
123456
16+
123456
17+
456
18+
456
19+
1e+10
20+
1e+10
21+
1e-10
22+
1e-10
23+
1e-10
24+
1e-10
25+
1e-10
26+
1e-10
27+
1e-10
28+
123456
29+
123456
30+
456
31+
456
32+
1e+10
33+
1e+10
34+
1e-10
35+
1e-10
36+
1e-10
37+
1e-10
38+
1e-10
39+
1e-10
40+
1e-10
41+
123
42+
123
43+
123
44+
123
45+
123
46+
123
47+
123456
48+
123
49+
123
50+
123
51+
123
52+
123
53+
123
54+
123456
55+
123456
56+
456
57+
1e+10
58+
1e+10
59+
1e-10
60+
1e-10
61+
1e-10
62+
1e-10
63+
1e-10
64+
123456
65+
456
66+
1e+10
67+
1e+10
68+
1e-10
69+
1e-10
70+
1e-10
71+
1e-10
72+
1e-10

0 commit comments

Comments
 (0)