adlint 2.4.10 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,72 @@
1
+ Feature: W0582
2
+
3
+ W0582 detects that number or types of arguments of a function call does not
4
+ conform with a prototype declaration of the function appears after the
5
+ function call.
6
+
7
+ Scenario: call with matched arguments
8
+ Given a target source named "fixture.c" with:
9
+ """
10
+ static void foo(int *p)
11
+ {
12
+ bar(NULL, *p); /* OK */
13
+ }
14
+
15
+ static void bar(int *, int);
16
+ """
17
+ When I successfully run `adlint fixture.c` on noarch
18
+ Then the output should exactly match with:
19
+ | mesg | line | column |
20
+ | W1076 | 1 | 13 |
21
+ | W0422 | 3 | 15 |
22
+ | W0109 | 3 | 8 |
23
+ | W0104 | 1 | 22 |
24
+ | W0105 | 1 | 22 |
25
+ | W1073 | 3 | 8 |
26
+ | W0629 | 1 | 13 |
27
+ | W0628 | 1 | 13 |
28
+
29
+ Scenario: call with unmatched arguments
30
+ Given a target source named "fixture.c" with:
31
+ """
32
+ static void foo(int *p)
33
+ {
34
+ bar(NULL, p); /* W0582 */
35
+ }
36
+
37
+ static void bar(int *, int);
38
+ """
39
+ When I successfully run `adlint fixture.c` on noarch
40
+ Then the output should exactly match with:
41
+ | mesg | line | column |
42
+ | W1076 | 1 | 13 |
43
+ | W0109 | 3 | 8 |
44
+ | W0104 | 1 | 22 |
45
+ | W0105 | 1 | 22 |
46
+ | W1073 | 3 | 8 |
47
+ | W0582 | 3 | 8 |
48
+ | W0629 | 1 | 13 |
49
+ | W0628 | 1 | 13 |
50
+
51
+ Scenario: call with unmatched constant pointer
52
+ Given a target source named "fixture.c" with:
53
+ """
54
+ static void foo(int *p)
55
+ {
56
+ bar(3, *p); /* W0582 */
57
+ }
58
+
59
+ static void bar(int *, int);
60
+ """
61
+ When I successfully run `adlint fixture.c` on noarch
62
+ Then the output should exactly match with:
63
+ | mesg | line | column |
64
+ | W1076 | 1 | 13 |
65
+ | W0422 | 3 | 12 |
66
+ | W0109 | 3 | 8 |
67
+ | W0104 | 1 | 22 |
68
+ | W0105 | 1 | 22 |
69
+ | W1073 | 3 | 8 |
70
+ | W0582 | 3 | 8 |
71
+ | W0629 | 1 | 13 |
72
+ | W0628 | 1 | 13 |
@@ -25,3 +25,96 @@ Feature: W0583
25
25
  | W0104 | 7 | 20 |
26
26
  | W0589 | 7 | 5 |
27
27
  | W0591 | 7 | 5 |
28
+
29
+ Scenario: call with matched arguments
30
+ Given a target source named "fixture.c" with:
31
+ """
32
+ static void foo(int *p)
33
+ {
34
+ bar(NULL, *p); /* OK */
35
+ }
36
+
37
+ static void bar(int *p, int i)
38
+ {
39
+ }
40
+ """
41
+ When I successfully run `adlint fixture.c` on noarch
42
+ Then the output should exactly match with:
43
+ | mesg | line | column |
44
+ | W1076 | 1 | 13 |
45
+ | W0422 | 3 | 15 |
46
+ | W0109 | 3 | 8 |
47
+ | W0104 | 1 | 22 |
48
+ | W0105 | 1 | 22 |
49
+ | W1073 | 3 | 8 |
50
+ | W1076 | 6 | 13 |
51
+ | W0031 | 6 | 22 |
52
+ | W0031 | 6 | 29 |
53
+ | W0104 | 6 | 22 |
54
+ | W0104 | 6 | 29 |
55
+ | W0105 | 6 | 22 |
56
+ | W0629 | 1 | 13 |
57
+ | W0629 | 6 | 13 |
58
+ | W0628 | 1 | 13 |
59
+
60
+ Scenario: call with unmatched arguments
61
+ Given a target source named "fixture.c" with:
62
+ """
63
+ static void foo(int *p)
64
+ {
65
+ bar(NULL, p); /* W0583 */
66
+ }
67
+
68
+ static void bar(int *p, int i)
69
+ {
70
+ }
71
+ """
72
+ When I successfully run `adlint fixture.c` on noarch
73
+ Then the output should exactly match with:
74
+ | mesg | line | column |
75
+ | W1076 | 1 | 13 |
76
+ | W0109 | 3 | 8 |
77
+ | W0104 | 1 | 22 |
78
+ | W0105 | 1 | 22 |
79
+ | W1073 | 3 | 8 |
80
+ | W0583 | 3 | 8 |
81
+ | W1076 | 6 | 13 |
82
+ | W0031 | 6 | 22 |
83
+ | W0031 | 6 | 29 |
84
+ | W0104 | 6 | 22 |
85
+ | W0104 | 6 | 29 |
86
+ | W0105 | 6 | 22 |
87
+ | W0629 | 1 | 13 |
88
+ | W0629 | 6 | 13 |
89
+ | W0628 | 1 | 13 |
90
+
91
+ Scenario: call with unmatched constant pointer
92
+ Given a target source named "fixture.c" with:
93
+ """
94
+ static void foo(int *p)
95
+ {
96
+ bar(3, p); /* W0583 */
97
+ }
98
+
99
+ static void bar(int *p, int i)
100
+ {
101
+ }
102
+ """
103
+ When I successfully run `adlint fixture.c` on noarch
104
+ Then the output should exactly match with:
105
+ | mesg | line | column |
106
+ | W1076 | 1 | 13 |
107
+ | W0109 | 3 | 8 |
108
+ | W0104 | 1 | 22 |
109
+ | W0105 | 1 | 22 |
110
+ | W1073 | 3 | 8 |
111
+ | W0583 | 3 | 8 |
112
+ | W1076 | 6 | 13 |
113
+ | W0031 | 6 | 22 |
114
+ | W0031 | 6 | 29 |
115
+ | W0104 | 6 | 22 |
116
+ | W0104 | 6 | 29 |
117
+ | W0105 | 6 | 22 |
118
+ | W0629 | 1 | 13 |
119
+ | W0629 | 6 | 13 |
120
+ | W0628 | 1 | 13 |
@@ -0,0 +1,139 @@
1
+ Feature: W0584
2
+
3
+ W0584 detects that type of the argument of a function call does not conform
4
+ with one of the corresponding parameter of the old style function definition.
5
+
6
+ Scenario: call with matched arguments
7
+ Given a target source named "fixture.c" with:
8
+ """
9
+ int foo(p, i)
10
+ int *p;
11
+ int i;
12
+ {
13
+ return *p + i;
14
+ }
15
+
16
+ int bar(p)
17
+ int *p;
18
+ {
19
+ return foo(NULL, *p); /* OK */
20
+ }
21
+ """
22
+ When I successfully run `adlint fixture.c` on noarch
23
+ Then the output should exactly match with:
24
+ | mesg | line | column |
25
+ | W0117 | 1 | 5 |
26
+ | W0422 | 5 | 12 |
27
+ | W0723 | 5 | 15 |
28
+ | W0104 | 2 | 6 |
29
+ | W0104 | 3 | 5 |
30
+ | W0105 | 2 | 6 |
31
+ | W0117 | 8 | 5 |
32
+ | W0422 | 11 | 22 |
33
+ | W0104 | 9 | 6 |
34
+ | W0105 | 9 | 6 |
35
+ | W0002 | 1 | 5 |
36
+ | W0002 | 8 | 5 |
37
+ | W0589 | 1 | 5 |
38
+ | W0591 | 1 | 5 |
39
+ | W0628 | 8 | 5 |
40
+
41
+ Scenario: call with unmatched arguments
42
+ Given a target source named "fixture.c" with:
43
+ """
44
+ int foo(p, i)
45
+ int *p;
46
+ int i;
47
+ {
48
+ return *p + i;
49
+ }
50
+
51
+ int bar(p)
52
+ int *p;
53
+ {
54
+ return foo(NULL, p); /* W0584 */
55
+ }
56
+ """
57
+ When I successfully run `adlint fixture.c` on noarch
58
+ Then the output should exactly match with:
59
+ | mesg | line | column |
60
+ | W0117 | 1 | 5 |
61
+ | W0422 | 5 | 12 |
62
+ | W0723 | 5 | 15 |
63
+ | W0104 | 2 | 6 |
64
+ | W0104 | 3 | 5 |
65
+ | W0105 | 2 | 6 |
66
+ | W0117 | 8 | 5 |
67
+ | W9003 | 11 | 22 |
68
+ | W0584 | 11 | 22 |
69
+ | W0104 | 9 | 6 |
70
+ | W0105 | 9 | 6 |
71
+ | W0002 | 1 | 5 |
72
+ | W0002 | 8 | 5 |
73
+ | W0589 | 1 | 5 |
74
+ | W0591 | 1 | 5 |
75
+ | W0628 | 8 | 5 |
76
+
77
+ Scenario: call with unmatched constant pointer
78
+ Given a target source named "fixture.c" with:
79
+ """
80
+ int foo(p, i)
81
+ int *p;
82
+ int i;
83
+ {
84
+ return *p + i;
85
+ }
86
+
87
+ int bar(p)
88
+ int *p;
89
+ {
90
+ return foo(3, *p); /* W0584 */
91
+ }
92
+ """
93
+ When I successfully run `adlint fixture.c` on noarch
94
+ Then the output should exactly match with:
95
+ | mesg | line | column |
96
+ | W0117 | 1 | 5 |
97
+ | W0422 | 5 | 12 |
98
+ | W0723 | 5 | 15 |
99
+ | W0104 | 2 | 6 |
100
+ | W0104 | 3 | 5 |
101
+ | W0105 | 2 | 6 |
102
+ | W0117 | 8 | 5 |
103
+ | W0422 | 11 | 19 |
104
+ | W9003 | 11 | 16 |
105
+ | W0584 | 11 | 16 |
106
+ | W0104 | 9 | 6 |
107
+ | W0105 | 9 | 6 |
108
+ | W0002 | 1 | 5 |
109
+ | W0002 | 8 | 5 |
110
+ | W0589 | 1 | 5 |
111
+ | W0591 | 1 | 5 |
112
+ | W0628 | 8 | 5 |
113
+
114
+ Scenario: call with convertible arguments
115
+ Given a target source named "fixture.c" with:
116
+ """
117
+ void print(p)
118
+ const char *p;
119
+ {
120
+ }
121
+
122
+ void foo()
123
+ {
124
+ print("foo"); /* OK */
125
+ }
126
+ """
127
+ When I successfully run `adlint fixture.c` on noarch
128
+ Then the output should exactly match with:
129
+ | mesg | line | column |
130
+ | W0117 | 1 | 6 |
131
+ | W0031 | 2 | 13 |
132
+ | W0104 | 2 | 13 |
133
+ | W0117 | 6 | 6 |
134
+ | W0002 | 1 | 6 |
135
+ | W0540 | 6 | 6 |
136
+ | W0947 | 8 | 11 |
137
+ | W0589 | 1 | 6 |
138
+ | W0591 | 1 | 6 |
139
+ | W0628 | 6 | 6 |
@@ -29,7 +29,6 @@ Feature: W0635
29
29
  | W0947 | 8 | 24 |
30
30
  | W0947 | 10 | 19 |
31
31
 
32
-
33
32
  Scenario: `%s' conversion-specifiers with bad arguments
34
33
  Given a target source named "fixture.c" with:
35
34
  """
@@ -47,7 +46,6 @@ Feature: W0635
47
46
  When I successfully run `adlint fixture.c` on noarch
48
47
  Then the output should exactly match with:
49
48
  | mesg | line | column |
50
- | W9003 | 7 | 29 |
51
49
  | W0635 | 9 | 19 |
52
50
  | W0635 | 9 | 19 |
53
51
  | W0635 | 9 | 19 |
@@ -0,0 +1,68 @@
1
+ Feature: W0722
2
+
3
+ W0722 detects that signed arithmetic-expression must overflow.
4
+
5
+ Scenario: additive-expression must not overflow
6
+ Given a target source named "fixture.c" with:
7
+ """
8
+ static int foo(int i, int j)
9
+ {
10
+ if ((i > -10) && (i < 10) && (j > -20) && (j < 20)) {
11
+ return i + j; /* OK */
12
+ }
13
+ return 0;
14
+ }
15
+ """
16
+ When I successfully run `adlint fixture.c` on noarch
17
+ Then the output should exactly match with:
18
+ | mesg | line | column |
19
+ | W1076 | 1 | 12 |
20
+ | W0104 | 1 | 20 |
21
+ | W0104 | 1 | 27 |
22
+ | W1071 | 1 | 12 |
23
+ | W0629 | 1 | 12 |
24
+ | W0628 | 1 | 12 |
25
+
26
+ Scenario: additive-expression may overflow
27
+ Given a target source named "fixture.c" with:
28
+ """
29
+ static int foo(int i, int j)
30
+ {
31
+ if ((i > -10) && (i < 10) && (j < 20)) {
32
+ return i + j; /* OK but W0723 */
33
+ }
34
+ return 0;
35
+ }
36
+ """
37
+ When I successfully run `adlint fixture.c` on noarch
38
+ Then the output should exactly match with:
39
+ | mesg | line | column |
40
+ | W1076 | 1 | 12 |
41
+ | W0723 | 4 | 18 |
42
+ | W0104 | 1 | 20 |
43
+ | W0104 | 1 | 27 |
44
+ | W1071 | 1 | 12 |
45
+ | W0629 | 1 | 12 |
46
+ | W0628 | 1 | 12 |
47
+
48
+ Scenario: additive-expression must overflow
49
+ Given a target source named "fixture.c" with:
50
+ """
51
+ static int foo(int i, int j)
52
+ {
53
+ if ((i > 2000000000) && (j > 2000000000)) {
54
+ return i + j; /* W0722 */
55
+ }
56
+ return 0;
57
+ }
58
+ """
59
+ When I successfully run `adlint fixture.c` on noarch
60
+ Then the output should exactly match with:
61
+ | mesg | line | column |
62
+ | W1076 | 1 | 12 |
63
+ | W0722 | 4 | 18 |
64
+ | W0104 | 1 | 20 |
65
+ | W0104 | 1 | 27 |
66
+ | W1071 | 1 | 12 |
67
+ | W0629 | 1 | 12 |
68
+ | W0628 | 1 | 12 |
@@ -1,6 +1,6 @@
1
1
  Feature: W0723
2
2
 
3
- W0723 detects that an arithmetic operation of signed values may be overflow.
3
+ W0723 detects that signed arithmetic-expression may overflow.
4
4
 
5
5
  Scenario: an arithmetic operation in initializer of a global variable
6
6
  Given a target source named "fixture.c" with:
@@ -39,15 +39,10 @@ Feature: W0732
39
39
  | W0104 | 1 | 29 |
40
40
  | W0104 | 1 | 43 |
41
41
  | W0629 | 1 | 13 |
42
- | W0088 | 5 | 17 |
43
42
  | W0732 | 5 | 17 |
44
- | W0088 | 6 | 17 |
45
43
  | W0732 | 6 | 17 |
46
- | W0088 | 7 | 17 |
47
44
  | W0732 | 7 | 17 |
48
- | W0088 | 8 | 17 |
49
45
  | W0732 | 8 | 17 |
50
- | W0088 | 9 | 17 |
51
46
  | W0732 | 9 | 17 |
52
47
  | W0508 | 11 | 18 |
53
48
  | W0732 | 11 | 18 |
@@ -106,15 +101,10 @@ Feature: W0732
106
101
  | W0104 | 1 | 29 |
107
102
  | W0104 | 1 | 43 |
108
103
  | W0629 | 1 | 13 |
109
- | W0088 | 5 | 18 |
110
104
  | W0732 | 5 | 18 |
111
- | W0088 | 6 | 18 |
112
105
  | W0732 | 6 | 18 |
113
- | W0088 | 7 | 17 |
114
106
  | W0732 | 7 | 17 |
115
- | W0088 | 8 | 17 |
116
107
  | W0732 | 8 | 17 |
117
- | W0088 | 9 | 17 |
118
108
  | W0732 | 9 | 17 |
119
109
  | W0508 | 11 | 18 |
120
110
  | W0732 | 11 | 18 |
@@ -154,9 +144,4 @@ Feature: W0732
154
144
  | W0104 | 1 | 36 |
155
145
  | W0104 | 1 | 43 |
156
146
  | W0629 | 1 | 13 |
157
- | W0088 | 6 | 18 |
158
- | W0088 | 9 | 17 |
159
- | W0088 | 10 | 18 |
160
- | W0088 | 13 | 18 |
161
- | W0088 | 14 | 18 |
162
147
  | W0628 | 1 | 13 |
@@ -39,15 +39,10 @@ Feature: W0733
39
39
  | W0104 | 1 | 29 |
40
40
  | W0104 | 1 | 43 |
41
41
  | W0629 | 1 | 13 |
42
- | W0088 | 5 | 17 |
43
42
  | W0733 | 5 | 17 |
44
- | W0088 | 6 | 17 |
45
43
  | W0733 | 6 | 17 |
46
- | W0088 | 7 | 17 |
47
44
  | W0733 | 7 | 17 |
48
- | W0088 | 8 | 17 |
49
45
  | W0733 | 8 | 17 |
50
- | W0088 | 9 | 17 |
51
46
  | W0733 | 9 | 17 |
52
47
  | W0508 | 11 | 18 |
53
48
  | W0733 | 11 | 18 |
@@ -106,15 +101,10 @@ Feature: W0733
106
101
  | W0104 | 1 | 29 |
107
102
  | W0104 | 1 | 43 |
108
103
  | W0629 | 1 | 13 |
109
- | W0088 | 5 | 18 |
110
104
  | W0733 | 5 | 18 |
111
- | W0088 | 6 | 18 |
112
105
  | W0733 | 6 | 18 |
113
- | W0088 | 7 | 17 |
114
106
  | W0733 | 7 | 17 |
115
- | W0088 | 8 | 17 |
116
107
  | W0733 | 8 | 17 |
117
- | W0088 | 9 | 17 |
118
108
  | W0733 | 9 | 17 |
119
109
  | W0508 | 11 | 18 |
120
110
  | W0733 | 11 | 18 |
@@ -154,9 +144,4 @@ Feature: W0733
154
144
  | W0104 | 1 | 36 |
155
145
  | W0104 | 1 | 43 |
156
146
  | W0629 | 1 | 13 |
157
- | W0088 | 6 | 18 |
158
- | W0088 | 9 | 17 |
159
- | W0088 | 10 | 18 |
160
- | W0088 | 13 | 18 |
161
- | W0088 | 14 | 18 |
162
147
  | W0628 | 1 | 13 |