adlint 1.16.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +471 -0
- data/MANIFEST +35 -8
- data/NEWS +50 -4
- data/bin/adlint +7 -7
- data/bin/adlint_chk +7 -7
- data/bin/adlint_cma +7 -7
- data/bin/adlint_sma +7 -7
- data/bin/adlintize +5 -5
- data/etc/mesg.d/en_US/messages.yml +3 -3
- data/etc/mesg.d/ja_JP/messages.yml +3 -3
- data/features/message_detection/E0013.feature +34 -0
- data/features/message_detection/W0007.feature +2 -0
- data/features/message_detection/W0583.feature +1 -2
- data/features/message_detection/W0641.feature +132 -0
- data/features/message_detection/W0643.feature +1 -1
- data/features/message_detection/W0644.feature +529 -0
- data/features/message_detection/W0645.feature +1 -1
- data/features/message_detection/W0649.feature +277 -0
- data/features/message_detection/W0650.feature +208 -0
- data/features/message_detection/W0697.feature +6 -0
- data/features/message_detection/W0705.feature +350 -0
- data/features/message_detection/W0707.feature +223 -0
- data/features/message_detection/W0711.feature +113 -0
- data/features/message_detection/W0712.feature +113 -0
- data/features/message_detection/W0713.feature +110 -0
- data/features/message_detection/W0714.feature +118 -0
- data/features/message_detection/W0715.feature +118 -0
- data/features/message_detection/W0716.feature +1 -0
- data/features/message_detection/W0717.feature +1 -0
- data/features/message_detection/W0718.feature +1 -0
- data/features/message_detection/W0719.feature +154 -0
- data/features/message_detection/W0723.feature +1 -2
- data/features/message_detection/W0732.feature +3 -0
- data/features/message_detection/W0733.feature +3 -0
- data/features/message_detection/W0734.feature +4 -0
- data/features/message_detection/W0735.feature +4 -0
- data/features/message_detection/W0745.feature +132 -0
- data/features/message_detection/W0780.feature +68 -0
- data/features/message_detection/W0783.feature +95 -0
- data/features/message_detection/W0792.feature +124 -0
- data/features/message_detection/W0793.feature +153 -0
- data/features/message_detection/W0794.feature +90 -0
- data/features/message_detection/W0830.feature +65 -0
- data/features/message_detection/W0833.feature +220 -0
- data/features/message_detection/W0834.feature +189 -0
- data/features/message_detection/W1026.feature +105 -0
- data/features/message_detection/W1031.feature +17 -34
- data/features/message_detection/W1039.feature +268 -0
- data/features/message_detection/W1047.feature +163 -0
- data/features/message_detection/W1066.feature +1 -0
- data/features/message_detection/W1067.feature +1 -0
- data/features/message_detection/W1068.feature +1 -0
- data/features/message_detection/W1069.feature +5 -0
- data/features/message_detection/W1070.feature +5 -0
- data/features/message_detection/W1071.feature +83 -0
- data/features/message_detection/W1073.feature +3 -2
- data/features/message_detection/W9003.feature +7 -12
- data/features/step_definitions/message_detection_steps.rb +4 -31
- data/features/support/env.rb +117 -2
- data/lib/adlint/c/branch.rb +0 -2
- data/lib/adlint/c/ctrlexpr.rb +33 -0
- data/lib/adlint/c/expr.rb +119 -31
- data/lib/adlint/c/interp.rb +44 -3
- data/lib/adlint/c/message.rb +1411 -29
- data/lib/adlint/c/object.rb +16 -2
- data/lib/adlint/c/option.rb +1 -0
- data/lib/adlint/c/parser.rb +101 -100
- data/lib/adlint/c/parser.y +3 -2
- data/lib/adlint/c/phase.rb +18 -0
- data/lib/adlint/c/resolver.rb +23 -0
- data/lib/adlint/c/syntax.rb +90 -4
- data/lib/adlint/c/type.rb +177 -110
- data/lib/adlint/cpp/macro.rb +4 -4
- data/lib/adlint/version.rb +2 -2
- data/share/demo/bad_include/test/"1/".h +0 -0
- data/share/doc/developers_guide_ja.html +3 -3
- data/share/doc/developers_guide_ja.texi +1 -1
- data/share/doc/users_guide_en.html +467 -506
- data/share/doc/users_guide_en.texi +95 -125
- data/share/doc/users_guide_ja.html +471 -518
- data/share/doc/users_guide_ja.texi +95 -133
- data/spec/spec_helper.rb +6 -0
- metadata +37 -10
@@ -0,0 +1,113 @@
|
|
1
|
+
Feature: W0711
|
2
|
+
|
3
|
+
W0711 detects that operand of right side of relational expression is
|
4
|
+
`effectively boolean'.
|
5
|
+
|
6
|
+
Scenario: a relational expression
|
7
|
+
Given a target source named "W0711.c" with:
|
8
|
+
"""
|
9
|
+
static int foo(int a, int b, int c, int d)
|
10
|
+
{
|
11
|
+
return (a + b) > (c > d); /* W0711 */
|
12
|
+
}
|
13
|
+
"""
|
14
|
+
When I successfully run `adlint W0711.c` on noarch
|
15
|
+
Then the output should exactly match with:
|
16
|
+
| mesg | line | column |
|
17
|
+
| W1076 | 1 | 12 |
|
18
|
+
| W0723 | 3 | 15 |
|
19
|
+
| W0104 | 1 | 20 |
|
20
|
+
| W0104 | 1 | 27 |
|
21
|
+
| W0104 | 1 | 34 |
|
22
|
+
| W0104 | 1 | 41 |
|
23
|
+
| W0629 | 1 | 12 |
|
24
|
+
| W0711 | 3 | 22 |
|
25
|
+
| W0628 | 1 | 12 |
|
26
|
+
|
27
|
+
Scenario: an equality expression
|
28
|
+
Given a target source named "W0711.c" with:
|
29
|
+
"""
|
30
|
+
static int foo(int a, int b, int c, int d)
|
31
|
+
{
|
32
|
+
return (a + b) > (c == d); /* W0711 */
|
33
|
+
}
|
34
|
+
"""
|
35
|
+
When I successfully run `adlint W0711.c` on noarch
|
36
|
+
Then the output should exactly match with:
|
37
|
+
| mesg | line | column |
|
38
|
+
| W1076 | 1 | 12 |
|
39
|
+
| W0723 | 3 | 15 |
|
40
|
+
| W0104 | 1 | 20 |
|
41
|
+
| W0104 | 1 | 27 |
|
42
|
+
| W0104 | 1 | 34 |
|
43
|
+
| W0104 | 1 | 41 |
|
44
|
+
| W0629 | 1 | 12 |
|
45
|
+
| W0711 | 3 | 22 |
|
46
|
+
| W0628 | 1 | 12 |
|
47
|
+
|
48
|
+
Scenario: a logical expression
|
49
|
+
Given a target source named "W0711.c" with:
|
50
|
+
"""
|
51
|
+
static int foo(int a, int b, int c, int d)
|
52
|
+
{
|
53
|
+
return (a + b) > (c && d); /* W0711 */
|
54
|
+
}
|
55
|
+
"""
|
56
|
+
When I successfully run `adlint W0711.c` on noarch
|
57
|
+
Then the output should exactly match with:
|
58
|
+
| mesg | line | column |
|
59
|
+
| W1076 | 1 | 12 |
|
60
|
+
| W0723 | 3 | 15 |
|
61
|
+
| W0104 | 1 | 20 |
|
62
|
+
| W0104 | 1 | 27 |
|
63
|
+
| W0104 | 1 | 34 |
|
64
|
+
| W0104 | 1 | 41 |
|
65
|
+
| W0629 | 1 | 12 |
|
66
|
+
| W0711 | 3 | 22 |
|
67
|
+
| W0628 | 1 | 12 |
|
68
|
+
|
69
|
+
Scenario: a shift expression
|
70
|
+
Given a target source named "W0711.c" with:
|
71
|
+
"""
|
72
|
+
static int foo(int a, int b, int c, int d)
|
73
|
+
{
|
74
|
+
return (a + b) > (c << d); /* OK */
|
75
|
+
}
|
76
|
+
"""
|
77
|
+
When I successfully run `adlint W0711.c` on noarch
|
78
|
+
Then the output should exactly match with:
|
79
|
+
| mesg | line | column |
|
80
|
+
| W1076 | 1 | 12 |
|
81
|
+
| W0723 | 3 | 15 |
|
82
|
+
| W0570 | 3 | 25 |
|
83
|
+
| W0572 | 3 | 25 |
|
84
|
+
| W0794 | 3 | 25 |
|
85
|
+
| W0104 | 1 | 20 |
|
86
|
+
| W0104 | 1 | 27 |
|
87
|
+
| W0104 | 1 | 34 |
|
88
|
+
| W0104 | 1 | 41 |
|
89
|
+
| W0629 | 1 | 12 |
|
90
|
+
| W0628 | 1 | 12 |
|
91
|
+
|
92
|
+
Scenario: an arithmetic expression
|
93
|
+
Given a target source named "W0711.c" with:
|
94
|
+
"""
|
95
|
+
static int foo(int a, int b, int c, int d)
|
96
|
+
{
|
97
|
+
return (a + b) > (c + d); /* OK */
|
98
|
+
}
|
99
|
+
"""
|
100
|
+
When I successfully run `adlint W0711.c` on noarch
|
101
|
+
Then the output should exactly match with:
|
102
|
+
| mesg | line | column |
|
103
|
+
| W1076 | 1 | 12 |
|
104
|
+
| W0723 | 3 | 15 |
|
105
|
+
| W0723 | 3 | 25 |
|
106
|
+
| W0104 | 1 | 20 |
|
107
|
+
| W0104 | 1 | 27 |
|
108
|
+
| W0104 | 1 | 34 |
|
109
|
+
| W0104 | 1 | 41 |
|
110
|
+
| W0629 | 1 | 12 |
|
111
|
+
| W0628 | 1 | 12 |
|
112
|
+
|
113
|
+
# vim:ts=2:sw=2:sts=2:et:
|
@@ -0,0 +1,113 @@
|
|
1
|
+
Feature: W0712
|
2
|
+
|
3
|
+
W0712 detects that operand of left side of relational expression is
|
4
|
+
`effectively boolean'.
|
5
|
+
|
6
|
+
Scenario: a relational expression
|
7
|
+
Given a target source named "W0712.c" with:
|
8
|
+
"""
|
9
|
+
static int foo(int a, int b, int c, int d)
|
10
|
+
{
|
11
|
+
return (a > b) > (c + d); /* W0712 */
|
12
|
+
}
|
13
|
+
"""
|
14
|
+
When I successfully run `adlint W0712.c` on noarch
|
15
|
+
Then the output should exactly match with:
|
16
|
+
| mesg | line | column |
|
17
|
+
| W1076 | 1 | 12 |
|
18
|
+
| W0723 | 3 | 25 |
|
19
|
+
| W0104 | 1 | 20 |
|
20
|
+
| W0104 | 1 | 27 |
|
21
|
+
| W0104 | 1 | 34 |
|
22
|
+
| W0104 | 1 | 41 |
|
23
|
+
| W0629 | 1 | 12 |
|
24
|
+
| W0712 | 3 | 12 |
|
25
|
+
| W0628 | 1 | 12 |
|
26
|
+
|
27
|
+
Scenario: an equality expression
|
28
|
+
Given a target source named "W0712.c" with:
|
29
|
+
"""
|
30
|
+
static int foo(int a, int b, int c, int d)
|
31
|
+
{
|
32
|
+
return (a == b) > (c + d); /* W0712 */
|
33
|
+
}
|
34
|
+
"""
|
35
|
+
When I successfully run `adlint W0712.c` on noarch
|
36
|
+
Then the output should exactly match with:
|
37
|
+
| mesg | line | column |
|
38
|
+
| W1076 | 1 | 12 |
|
39
|
+
| W0723 | 3 | 26 |
|
40
|
+
| W0104 | 1 | 20 |
|
41
|
+
| W0104 | 1 | 27 |
|
42
|
+
| W0104 | 1 | 34 |
|
43
|
+
| W0104 | 1 | 41 |
|
44
|
+
| W0629 | 1 | 12 |
|
45
|
+
| W0712 | 3 | 12 |
|
46
|
+
| W0628 | 1 | 12 |
|
47
|
+
|
48
|
+
Scenario: a logical expression
|
49
|
+
Given a target source named "W0712.c" with:
|
50
|
+
"""
|
51
|
+
static int foo(int a, int b, int c, int d)
|
52
|
+
{
|
53
|
+
return (a && b) > (c + d); /* W0712 */
|
54
|
+
}
|
55
|
+
"""
|
56
|
+
When I successfully run `adlint W0712.c` on noarch
|
57
|
+
Then the output should exactly match with:
|
58
|
+
| mesg | line | column |
|
59
|
+
| W1076 | 1 | 12 |
|
60
|
+
| W0723 | 3 | 26 |
|
61
|
+
| W0104 | 1 | 20 |
|
62
|
+
| W0104 | 1 | 27 |
|
63
|
+
| W0104 | 1 | 34 |
|
64
|
+
| W0104 | 1 | 41 |
|
65
|
+
| W0629 | 1 | 12 |
|
66
|
+
| W0712 | 3 | 12 |
|
67
|
+
| W0628 | 1 | 12 |
|
68
|
+
|
69
|
+
Scenario: a shift expression
|
70
|
+
Given a target source named "W0712.c" with:
|
71
|
+
"""
|
72
|
+
static int foo(int a, int b, int c, int d)
|
73
|
+
{
|
74
|
+
return (a << b) > (c + d); /* OK */
|
75
|
+
}
|
76
|
+
"""
|
77
|
+
When I successfully run `adlint W0712.c` on noarch
|
78
|
+
Then the output should exactly match with:
|
79
|
+
| mesg | line | column |
|
80
|
+
| W1076 | 1 | 12 |
|
81
|
+
| W0570 | 3 | 15 |
|
82
|
+
| W0572 | 3 | 15 |
|
83
|
+
| W0794 | 3 | 15 |
|
84
|
+
| W0723 | 3 | 26 |
|
85
|
+
| W0104 | 1 | 20 |
|
86
|
+
| W0104 | 1 | 27 |
|
87
|
+
| W0104 | 1 | 34 |
|
88
|
+
| W0104 | 1 | 41 |
|
89
|
+
| W0629 | 1 | 12 |
|
90
|
+
| W0628 | 1 | 12 |
|
91
|
+
|
92
|
+
Scenario: an arithmetic expression
|
93
|
+
Given a target source named "W0712.c" with:
|
94
|
+
"""
|
95
|
+
static int foo(int a, int b, int c, int d)
|
96
|
+
{
|
97
|
+
return (a + b) > (c + d); /* OK */
|
98
|
+
}
|
99
|
+
"""
|
100
|
+
When I successfully run `adlint W0712.c` on noarch
|
101
|
+
Then the output should exactly match with:
|
102
|
+
| mesg | line | column |
|
103
|
+
| W1076 | 1 | 12 |
|
104
|
+
| W0723 | 3 | 15 |
|
105
|
+
| W0723 | 3 | 25 |
|
106
|
+
| W0104 | 1 | 20 |
|
107
|
+
| W0104 | 1 | 27 |
|
108
|
+
| W0104 | 1 | 34 |
|
109
|
+
| W0104 | 1 | 41 |
|
110
|
+
| W0629 | 1 | 12 |
|
111
|
+
| W0628 | 1 | 12 |
|
112
|
+
|
113
|
+
# vim:ts=2:sw=2:sts=2:et:
|
@@ -0,0 +1,110 @@
|
|
1
|
+
Feature: W0713
|
2
|
+
|
3
|
+
W0713 detects that operands of both sides of relational expression is
|
4
|
+
`effectively boolean'.
|
5
|
+
|
6
|
+
Scenario: relational expressions
|
7
|
+
Given a target source named "W0713.c" with:
|
8
|
+
"""
|
9
|
+
static int foo(int a, int b, int c, int d)
|
10
|
+
{
|
11
|
+
return (a > b) > (c > d); /* W0713 */
|
12
|
+
}
|
13
|
+
"""
|
14
|
+
When I successfully run `adlint W0713.c` on noarch
|
15
|
+
Then the output should exactly match with:
|
16
|
+
| mesg | line | column |
|
17
|
+
| W1076 | 1 | 12 |
|
18
|
+
| W0104 | 1 | 20 |
|
19
|
+
| W0104 | 1 | 27 |
|
20
|
+
| W0104 | 1 | 34 |
|
21
|
+
| W0104 | 1 | 41 |
|
22
|
+
| W0629 | 1 | 12 |
|
23
|
+
| W0713 | 3 | 20 |
|
24
|
+
| W0628 | 1 | 12 |
|
25
|
+
|
26
|
+
Scenario: an equality expression
|
27
|
+
Given a target source named "W0713.c" with:
|
28
|
+
"""
|
29
|
+
static int foo(int a, int b, int c, int d)
|
30
|
+
{
|
31
|
+
return (a == b) > (c != d); /* W0713 */
|
32
|
+
}
|
33
|
+
"""
|
34
|
+
When I successfully run `adlint W0713.c` on noarch
|
35
|
+
Then the output should exactly match with:
|
36
|
+
| mesg | line | column |
|
37
|
+
| W1076 | 1 | 12 |
|
38
|
+
| W0104 | 1 | 20 |
|
39
|
+
| W0104 | 1 | 27 |
|
40
|
+
| W0104 | 1 | 34 |
|
41
|
+
| W0104 | 1 | 41 |
|
42
|
+
| W0629 | 1 | 12 |
|
43
|
+
| W0713 | 3 | 21 |
|
44
|
+
| W0628 | 1 | 12 |
|
45
|
+
|
46
|
+
Scenario: logical expressions
|
47
|
+
Given a target source named "W0713.c" with:
|
48
|
+
"""
|
49
|
+
static int foo(int a, int b, int c, int d)
|
50
|
+
{
|
51
|
+
return (a && b) > (c || d); /* W0713 */
|
52
|
+
}
|
53
|
+
"""
|
54
|
+
When I successfully run `adlint W0713.c` on noarch
|
55
|
+
Then the output should exactly match with:
|
56
|
+
| mesg | line | column |
|
57
|
+
| W1076 | 1 | 12 |
|
58
|
+
| W0104 | 1 | 20 |
|
59
|
+
| W0104 | 1 | 27 |
|
60
|
+
| W0104 | 1 | 34 |
|
61
|
+
| W0104 | 1 | 41 |
|
62
|
+
| W0629 | 1 | 12 |
|
63
|
+
| W0713 | 3 | 21 |
|
64
|
+
| W0628 | 1 | 12 |
|
65
|
+
|
66
|
+
Scenario: shift expressions
|
67
|
+
Given a target source named "W0713.c" with:
|
68
|
+
"""
|
69
|
+
static int foo(int a, int b, int c, int d)
|
70
|
+
{
|
71
|
+
return (a << b) > (c ^ d); /* OK */
|
72
|
+
}
|
73
|
+
"""
|
74
|
+
When I successfully run `adlint W0713.c` on noarch
|
75
|
+
Then the output should exactly match with:
|
76
|
+
| mesg | line | column |
|
77
|
+
| W1076 | 1 | 12 |
|
78
|
+
| W0570 | 3 | 15 |
|
79
|
+
| W0572 | 3 | 15 |
|
80
|
+
| W0794 | 3 | 15 |
|
81
|
+
| W0572 | 3 | 26 |
|
82
|
+
| W0104 | 1 | 20 |
|
83
|
+
| W0104 | 1 | 27 |
|
84
|
+
| W0104 | 1 | 34 |
|
85
|
+
| W0104 | 1 | 41 |
|
86
|
+
| W0629 | 1 | 12 |
|
87
|
+
| W0628 | 1 | 12 |
|
88
|
+
|
89
|
+
Scenario: arithmetic expressions
|
90
|
+
Given a target source named "W0713.c" with:
|
91
|
+
"""
|
92
|
+
static int foo(int a, int b, int c, int d)
|
93
|
+
{
|
94
|
+
return (a + b) > (c - d); /* OK */
|
95
|
+
}
|
96
|
+
"""
|
97
|
+
When I successfully run `adlint W0713.c` on noarch
|
98
|
+
Then the output should exactly match with:
|
99
|
+
| mesg | line | column |
|
100
|
+
| W1076 | 1 | 12 |
|
101
|
+
| W0723 | 3 | 15 |
|
102
|
+
| W0723 | 3 | 25 |
|
103
|
+
| W0104 | 1 | 20 |
|
104
|
+
| W0104 | 1 | 27 |
|
105
|
+
| W0104 | 1 | 34 |
|
106
|
+
| W0104 | 1 | 41 |
|
107
|
+
| W0629 | 1 | 12 |
|
108
|
+
| W0628 | 1 | 12 |
|
109
|
+
|
110
|
+
# vim:ts=2:sw=2:sts=2:et:
|
@@ -0,0 +1,118 @@
|
|
1
|
+
Feature: W0714
|
2
|
+
|
3
|
+
W0714 detects that operands of both sides of and-expression is
|
4
|
+
`effectively boolean'.
|
5
|
+
|
6
|
+
Scenario: relational expressions
|
7
|
+
Given a target source named "W0714.c" with:
|
8
|
+
"""
|
9
|
+
static int foo(int a, int b, int c, int d)
|
10
|
+
{
|
11
|
+
return (a > b) & (c > d); /* W0714 */
|
12
|
+
}
|
13
|
+
"""
|
14
|
+
When I successfully run `adlint W0714.c` on noarch
|
15
|
+
Then the output should exactly match with:
|
16
|
+
| mesg | line | column |
|
17
|
+
| W1076 | 1 | 12 |
|
18
|
+
| W0572 | 3 | 20 |
|
19
|
+
| W0104 | 1 | 20 |
|
20
|
+
| W0104 | 1 | 27 |
|
21
|
+
| W0104 | 1 | 34 |
|
22
|
+
| W0104 | 1 | 41 |
|
23
|
+
| W0629 | 1 | 12 |
|
24
|
+
| W0714 | 3 | 20 |
|
25
|
+
| W0716 | 3 | 20 |
|
26
|
+
| W0628 | 1 | 12 |
|
27
|
+
|
28
|
+
Scenario: equality expressions
|
29
|
+
Given a target source named "W0714.c" with:
|
30
|
+
"""
|
31
|
+
static int foo(int a, int b, int c, int d)
|
32
|
+
{
|
33
|
+
return (a == b) & (c != d); /* W0714 */
|
34
|
+
}
|
35
|
+
"""
|
36
|
+
When I successfully run `adlint W0714.c` on noarch
|
37
|
+
Then the output should exactly match with:
|
38
|
+
| mesg | line | column |
|
39
|
+
| W1076 | 1 | 12 |
|
40
|
+
| W0572 | 3 | 21 |
|
41
|
+
| W0104 | 1 | 20 |
|
42
|
+
| W0104 | 1 | 27 |
|
43
|
+
| W0104 | 1 | 34 |
|
44
|
+
| W0104 | 1 | 41 |
|
45
|
+
| W0629 | 1 | 12 |
|
46
|
+
| W0714 | 3 | 21 |
|
47
|
+
| W0716 | 3 | 21 |
|
48
|
+
| W0628 | 1 | 12 |
|
49
|
+
|
50
|
+
Scenario: logical expressions
|
51
|
+
Given a target source named "W0714.c" with:
|
52
|
+
"""
|
53
|
+
static int foo(int a, int b, int c, int d)
|
54
|
+
{
|
55
|
+
return (a && b) & (c || d); /* W0714 */
|
56
|
+
}
|
57
|
+
"""
|
58
|
+
When I successfully run `adlint W0714.c` on noarch
|
59
|
+
Then the output should exactly match with:
|
60
|
+
| mesg | line | column |
|
61
|
+
| W1076 | 1 | 12 |
|
62
|
+
| W0572 | 3 | 21 |
|
63
|
+
| W0104 | 1 | 20 |
|
64
|
+
| W0104 | 1 | 27 |
|
65
|
+
| W0104 | 1 | 34 |
|
66
|
+
| W0104 | 1 | 41 |
|
67
|
+
| W0629 | 1 | 12 |
|
68
|
+
| W0714 | 3 | 21 |
|
69
|
+
| W0716 | 3 | 21 |
|
70
|
+
| W0628 | 1 | 12 |
|
71
|
+
|
72
|
+
Scenario: shift expressions
|
73
|
+
Given a target source named "W0714.c" with:
|
74
|
+
"""
|
75
|
+
static int foo(int a, int b, int c, int d)
|
76
|
+
{
|
77
|
+
return (a << b) & (c ^ d); /* OK */
|
78
|
+
}
|
79
|
+
"""
|
80
|
+
When I successfully run `adlint W0714.c` on noarch
|
81
|
+
Then the output should exactly match with:
|
82
|
+
| mesg | line | column |
|
83
|
+
| W1076 | 1 | 12 |
|
84
|
+
| W0570 | 3 | 15 |
|
85
|
+
| W0572 | 3 | 15 |
|
86
|
+
| W0794 | 3 | 15 |
|
87
|
+
| W0572 | 3 | 26 |
|
88
|
+
| W0572 | 3 | 21 |
|
89
|
+
| W0104 | 1 | 20 |
|
90
|
+
| W0104 | 1 | 27 |
|
91
|
+
| W0104 | 1 | 34 |
|
92
|
+
| W0104 | 1 | 41 |
|
93
|
+
| W0629 | 1 | 12 |
|
94
|
+
| W0628 | 1 | 12 |
|
95
|
+
|
96
|
+
Scenario: arithmetic expressions
|
97
|
+
Given a target source named "W0714.c" with:
|
98
|
+
"""
|
99
|
+
static int foo(int a, int b, int c, int d)
|
100
|
+
{
|
101
|
+
return (a + b) & (c - d); /* OK */
|
102
|
+
}
|
103
|
+
"""
|
104
|
+
When I successfully run `adlint W0714.c` on noarch
|
105
|
+
Then the output should exactly match with:
|
106
|
+
| mesg | line | column |
|
107
|
+
| W1076 | 1 | 12 |
|
108
|
+
| W0723 | 3 | 15 |
|
109
|
+
| W0723 | 3 | 25 |
|
110
|
+
| W0572 | 3 | 20 |
|
111
|
+
| W0104 | 1 | 20 |
|
112
|
+
| W0104 | 1 | 27 |
|
113
|
+
| W0104 | 1 | 34 |
|
114
|
+
| W0104 | 1 | 41 |
|
115
|
+
| W0629 | 1 | 12 |
|
116
|
+
| W0628 | 1 | 12 |
|
117
|
+
|
118
|
+
# vim:ts=2:sw=2:sts=2:et:
|