adlint 3.2.6 → 3.2.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4774c72882046014dec25bfca551feb5b00b083d
4
- data.tar.gz: 875d9c355ed1d2d2d74c8e0ec2fd7c0667d08dd1
3
+ metadata.gz: 8916d310fa0ededda3bd70f09eb99d8cf427d003
4
+ data.tar.gz: e5397db4eb1ddc9ed6aa64fe6897c338a67d667a
5
5
  SHA512:
6
- metadata.gz: 2da39541948166ed69f749f93bac34240aa19ce39a983f21aea1692323c02d413b4b3b5e188b867564d3f6a9ee1a7beb825ded3ec82859985d4924323079ac3f
7
- data.tar.gz: 4e9e102347077d68ee73e19b05ad5d4c53763c35f33919215818c6d8e181834ed1c9dcf715407781b3ce06c4733c8ecc2b203ef97da71e216f5a1d7b36ae28ca
6
+ metadata.gz: 7cd935287b1973ef6f702ea7d97beb43b549369234ec763b25778cb8e091249bcd1fb41598c9878c26bb6a1341ead9981bfdcef27164cd86334ccb59bfe2d2c2
7
+ data.tar.gz: 3ded4f16cbe974f97c855a91a184b81ed9e131734ed2e074ae60e2a100c288f88f87173e68516831cd2f3c013074b3fb81c3743b1df0ada713b0426c9c8c1367
data/ChangeLog CHANGED
@@ -1,3 +1,26 @@
1
+ Fri Feb 7 14:54:17 2014 Yutaka Yanoh <yanoh@users.sourceforge.net>
2
+
3
+ * release.ga : 3.2.8
4
+ - Fix preprocessor in order not to abend when a function-like macro
5
+ generates a hexadecimal integer-constant from standalone prefix and
6
+ number by the concatenation operator.
7
+
8
+ Thu Feb 6 15:22:34 2014 Yutaka Yanoh <yanoh@users.sourceforge.net>
9
+
10
+ * release.rc : 3.2.7
11
+ - Fix preprocessor in order not to abend when a function-like macro
12
+ generates a hexadecimal integer-constant from standalone prefix and
13
+ number by the concatenation operator.
14
+
15
+ Wed Feb 5 10:28:10 2014 Yutaka Yanoh <yanoh@users.sourceforge.net>
16
+
17
+ * lib/adlint/cc1/scanner.rb : Fix preprocessor in order not to abend
18
+ when a function-like macro generates a hexadecimal integer-constant
19
+ from standalone prefix and number by the concatenation operator.
20
+
21
+ * features/code_check/E0008.feature : Add token concatenation scenarios
22
+ to reproduce the bug reported on the AdLint PAD site.
23
+
1
24
  Thu Jan 9 15:22:32 2014 Yutaka Yanoh <yanoh@users.sourceforge.net>
2
25
 
3
26
  * release.ga : 3.2.6
data/NEWS CHANGED
@@ -21,6 +21,17 @@
21
21
 
22
22
  ++
23
23
 
24
+ === \AdLint 3.2.8 is released (2014-02-07)
25
+
26
+ ==== Changes since the 3.2.6 release
27
+
28
+ * Fix preprocessor in order not to abend when a function-like macro generates a
29
+ hexadecimal integer-constant from standalone prefix and number by the
30
+ concatenation operator
31
+
32
+ See the file {ChangeLog}[https://github.com/yanoh/adlint/blob/master/ChangeLog]
33
+ for more details.
34
+
24
35
  === \AdLint 3.2.6 is released (2014-01-09)
25
36
 
26
37
  ==== Changes since the 3.2.0 release
@@ -36,9 +47,6 @@
36
47
  * Revise the parser generation rule in order to accept extra semicolons in the
37
48
  global scope
38
49
 
39
- See the file {ChangeLog}[https://github.com/yanoh/adlint/blob/master/ChangeLog]
40
- for more details.
41
-
42
50
  === \AdLint 3.2.0 is released (2013-08-28)
43
51
 
44
52
  ==== Changes since the 3.0.10 release
@@ -49,7 +49,7 @@
49
49
  # - "ERR:X99"
50
50
  # format: "Your custom message for the error of E9999."
51
51
 
52
- version: "3.2.6"
52
+ version: "3.2.8"
53
53
 
54
54
  message_definition:
55
55
  W0001:
@@ -49,7 +49,7 @@
49
49
  # - "ERR:X99"
50
50
  # format: "Your custom message for the error of E9999."
51
51
 
52
- version: "3.2.6"
52
+ version: "3.2.8"
53
53
 
54
54
  message_definition:
55
55
  W0001:
@@ -49,7 +49,7 @@
49
49
  # - "ERR:X99"
50
50
  # format: "Your custom message for the error of E9999."
51
51
 
52
- version: "3.2.6"
52
+ version: "3.2.8"
53
53
 
54
54
  message_definition:
55
55
  X0001:
@@ -49,7 +49,7 @@
49
49
  # - "ERR:X99"
50
50
  # format: "Your custom message for the error of E9999."
51
51
 
52
- version: "3.2.6"
52
+ version: "3.2.8"
53
53
 
54
54
  message_definition:
55
55
  X0001:
@@ -140,3 +140,119 @@ Feature: E0008
140
140
  | W0586 | 2 | 19 |
141
141
  | W0586 | 1 | 26 |
142
142
  | W0586 | 2 | 26 |
143
+
144
+ Scenario: concatenating hexadecimal prefix and number in function-form macro
145
+ Given a target source named "fixture.c" with:
146
+ """
147
+ #define HEX(num) 0x##num
148
+
149
+ static void foo(void)
150
+ {
151
+ int i = HEX(123); /* should be replaced into "0x123" not "0 x123" */
152
+ }
153
+ """
154
+ When I successfully run `adlint fixture.c` on noarch
155
+ Then the output should exactly match with:
156
+ | mesg | line | column |
157
+ | W0442 | 1 | 1 |
158
+ | W1076 | 3 | 13 |
159
+ | W0076 | 5 | 13 |
160
+ | W0100 | 5 | 9 |
161
+ | W0629 | 3 | 13 |
162
+ | W0628 | 3 | 13 |
163
+
164
+ Scenario: concatenating hexadecimal prefix and number in function-form macro
165
+ Given a target source named "fixture.c" with:
166
+ """
167
+ #define HEX(num) 0x##num
168
+
169
+ static void foo(void)
170
+ {
171
+ int i = HEX(AB123CD); /* should be replaced into "0xAB123CD" */
172
+ }
173
+ """
174
+ When I successfully run `adlint fixture.c` on noarch
175
+ Then the output should exactly match with:
176
+ | mesg | line | column |
177
+ | W0442 | 1 | 1 |
178
+ | W1076 | 3 | 13 |
179
+ | W0076 | 5 | 13 |
180
+ | W0100 | 5 | 9 |
181
+ | W0629 | 3 | 13 |
182
+ | W0628 | 3 | 13 |
183
+
184
+ Scenario: concatenating hexadecimal prefix and number in function-form macro
185
+ Given a target source named "fixture.c" with:
186
+ """
187
+ #define HEX(num) 0x##num
188
+
189
+ static void foo(void)
190
+ {
191
+ int i = HEX(ABCD); /* should be replaced into "0xABCD" */
192
+ }
193
+ """
194
+ When I successfully run `adlint fixture.c` on noarch
195
+ Then the output should exactly match with:
196
+ | mesg | line | column |
197
+ | W0442 | 1 | 1 |
198
+ | W1076 | 3 | 13 |
199
+ | W0076 | 5 | 13 |
200
+ | W0100 | 5 | 9 |
201
+ | W0629 | 3 | 13 |
202
+ | W0628 | 3 | 13 |
203
+
204
+ Scenario: concatenating hexadecimal prefix and number in function-form macro
205
+ Given a target source named "fixture.c" with:
206
+ """
207
+ #define HEX(num) 0##num
208
+
209
+ static void foo(void)
210
+ {
211
+ int i = HEX(x123); /* should be replaced into "0x123" not "0 x123" */
212
+ }
213
+ """
214
+ When I successfully run `adlint fixture.c` on noarch
215
+ Then the output should exactly match with:
216
+ | mesg | line | column |
217
+ | W0442 | 1 | 1 |
218
+ | W1076 | 3 | 13 |
219
+ | W0076 | 5 | 13 |
220
+ | W0100 | 5 | 9 |
221
+ | W0629 | 3 | 13 |
222
+ | W0628 | 3 | 13 |
223
+
224
+ Scenario: concatenating hexadecimal prefix and number in function-form macro
225
+ Given a target source named "fixture.c" with:
226
+ """
227
+ #define HEX(num) 0x0##num
228
+
229
+ static void foo(void)
230
+ {
231
+ int i = HEX(123); /* should be replaced into "0x0123" */
232
+ }
233
+ """
234
+ When I successfully run `adlint fixture.c` on noarch
235
+ Then the output should exactly match with:
236
+ | mesg | line | column |
237
+ | W0442 | 1 | 1 |
238
+ | W1076 | 3 | 13 |
239
+ | W0076 | 5 | 13 |
240
+ | W0100 | 5 | 9 |
241
+ | W0629 | 3 | 13 |
242
+ | W0628 | 3 | 13 |
243
+
244
+ Scenario: ill-formed standalone hexadecimal prefix
245
+ Given a target source named "fixture.c" with:
246
+ """
247
+ static void foo(void)
248
+ {
249
+ int i = 0x;
250
+ }
251
+ """
252
+ When I successfully run `adlint fixture.c` on noarch
253
+ Then the output should exactly match with:
254
+ | mesg | line | column |
255
+ | W1076 | 1 | 13 |
256
+ | W0100 | 3 | 9 |
257
+ | W0629 | 1 | 13 |
258
+ | W0628 | 1 | 13 |
@@ -155,7 +155,7 @@ module Cc1 #:nodoc:
155
155
  # String -- Returns C integer constant string if found at head of the
156
156
  # content.
157
157
  def scan_integer_constant(cont)
158
- cont.scan(/(?:0x[0-9a-f]+|0b[01]+|[0-9]+)[UL]*/i)
158
+ cont.scan(/(?:0x[0-9a-f]*|0b[01]*|[0-9]+)[UL]*/i)
159
159
  end
160
160
 
161
161
  FLOATING1_RE = /(?:[0-9]*\.[0-9]*E[+-]?[0-9]+|[0-9]+\.?E[+-]?[0-9]+)[FL]*/i
@@ -33,8 +33,8 @@ module AdLint #:nodoc:
33
33
 
34
34
  MAJOR_VERSION = 3
35
35
  MINOR_VERSION = 2
36
- PATCH_VERSION = 6
37
- RELEASE_DATE = "2014-01-09"
36
+ PATCH_VERSION = 8
37
+ RELEASE_DATE = "2014-02-07"
38
38
 
39
39
  TRAITS_SCHEMA_VERSION = "3.0.0"
40
40
 
@@ -1,8 +1,8 @@
1
1
  <html lang="ja">
2
2
  <head>
3
- <title>AdLint 3.2.6 開発者ガイド</title>
3
+ <title>AdLint 3.2.8 開発者ガイド</title>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta name="description" content="AdLint 3.2.6 開発者ガイド">
5
+ <meta name="description" content="AdLint 3.2.8 開発者ガイド">
6
6
  <meta name="generator" content="makeinfo 4.13">
7
7
  <link title="Top" rel="top" href="#Top">
8
8
  <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
@@ -44,7 +44,7 @@ td { border: 1px solid black; }
44
44
  --></style>
45
45
  </head>
46
46
  <body>
47
- <h1 class="settitle">AdLint 3.2.6 開発者ガイド</h1>
47
+ <h1 class="settitle">AdLint 3.2.8 開発者ガイド</h1>
48
48
  <div class="contents">
49
49
  <h2>Table of Contents</h2>
50
50
  <ul>
@@ -2,7 +2,7 @@
2
2
  @setfilename developers_guide_ja.info
3
3
  @documentlanguage ja
4
4
  @documentencoding utf-8
5
- @settitle AdLint 3.2.6 開発者ガイド
5
+ @settitle AdLint 3.2.8 開発者ガイド
6
6
 
7
7
  @copying
8
8
  Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
@@ -1,8 +1,8 @@
1
1
  <html lang="en">
2
2
  <head>
3
- <title>AdLint 3.2.6 User's Guide</title>
3
+ <title>AdLint 3.2.8 User's Guide</title>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta name="description" content="AdLint 3.2.6 User's Guide">
5
+ <meta name="description" content="AdLint 3.2.8 User's Guide">
6
6
  <meta name="generator" content="makeinfo 4.13">
7
7
  <link title="Top" rel="top" href="#Top">
8
8
  <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
@@ -44,7 +44,7 @@ td { border: 1px solid black; }
44
44
  --></style>
45
45
  </head>
46
46
  <body>
47
- <h1 class="settitle">AdLint 3.2.6 User's Guide</h1>
47
+ <h1 class="settitle">AdLint 3.2.8 User's Guide</h1>
48
48
  <div class="node">
49
49
  <a name="Top"></a>
50
50
  <p><hr>
@@ -2,7 +2,7 @@
2
2
  @setfilename users_guide_en.info
3
3
  @documentlanguage en
4
4
  @documentencoding utf-8
5
- @settitle AdLint 3.2.6 User's Guide
5
+ @settitle AdLint 3.2.8 User's Guide
6
6
 
7
7
  @copying
8
8
  Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
@@ -1,8 +1,8 @@
1
1
  <html lang="ja">
2
2
  <head>
3
- <title>AdLint 3.2.6 利用者ガイド</title>
3
+ <title>AdLint 3.2.8 利用者ガイド</title>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta name="description" content="AdLint 3.2.6 利用者ガイド">
5
+ <meta name="description" content="AdLint 3.2.8 利用者ガイド">
6
6
  <meta name="generator" content="makeinfo 4.13">
7
7
  <link title="Top" rel="top" href="#Top">
8
8
  <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
@@ -44,7 +44,7 @@ td { border: 1px solid black; }
44
44
  --></style>
45
45
  </head>
46
46
  <body>
47
- <h1 class="settitle">AdLint 3.2.6 利用者ガイド</h1>
47
+ <h1 class="settitle">AdLint 3.2.8 利用者ガイド</h1>
48
48
  <div class="node">
49
49
  <a name="Top"></a>
50
50
  <p><hr>
@@ -2,7 +2,7 @@
2
2
  @setfilename users_guide_ja.info
3
3
  @documentlanguage ja
4
4
  @documentencoding utf-8
5
- @settitle AdLint 3.2.6 利用者ガイド
5
+ @settitle AdLint 3.2.8 利用者ガイド
6
6
 
7
7
  @copying
8
8
  Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adlint
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yutaka Yanoh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2014-02-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  AdLint is a source code static analyzer.