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.
Files changed (83) hide show
  1. data/ChangeLog +471 -0
  2. data/MANIFEST +35 -8
  3. data/NEWS +50 -4
  4. data/bin/adlint +7 -7
  5. data/bin/adlint_chk +7 -7
  6. data/bin/adlint_cma +7 -7
  7. data/bin/adlint_sma +7 -7
  8. data/bin/adlintize +5 -5
  9. data/etc/mesg.d/en_US/messages.yml +3 -3
  10. data/etc/mesg.d/ja_JP/messages.yml +3 -3
  11. data/features/message_detection/E0013.feature +34 -0
  12. data/features/message_detection/W0007.feature +2 -0
  13. data/features/message_detection/W0583.feature +1 -2
  14. data/features/message_detection/W0641.feature +132 -0
  15. data/features/message_detection/W0643.feature +1 -1
  16. data/features/message_detection/W0644.feature +529 -0
  17. data/features/message_detection/W0645.feature +1 -1
  18. data/features/message_detection/W0649.feature +277 -0
  19. data/features/message_detection/W0650.feature +208 -0
  20. data/features/message_detection/W0697.feature +6 -0
  21. data/features/message_detection/W0705.feature +350 -0
  22. data/features/message_detection/W0707.feature +223 -0
  23. data/features/message_detection/W0711.feature +113 -0
  24. data/features/message_detection/W0712.feature +113 -0
  25. data/features/message_detection/W0713.feature +110 -0
  26. data/features/message_detection/W0714.feature +118 -0
  27. data/features/message_detection/W0715.feature +118 -0
  28. data/features/message_detection/W0716.feature +1 -0
  29. data/features/message_detection/W0717.feature +1 -0
  30. data/features/message_detection/W0718.feature +1 -0
  31. data/features/message_detection/W0719.feature +154 -0
  32. data/features/message_detection/W0723.feature +1 -2
  33. data/features/message_detection/W0732.feature +3 -0
  34. data/features/message_detection/W0733.feature +3 -0
  35. data/features/message_detection/W0734.feature +4 -0
  36. data/features/message_detection/W0735.feature +4 -0
  37. data/features/message_detection/W0745.feature +132 -0
  38. data/features/message_detection/W0780.feature +68 -0
  39. data/features/message_detection/W0783.feature +95 -0
  40. data/features/message_detection/W0792.feature +124 -0
  41. data/features/message_detection/W0793.feature +153 -0
  42. data/features/message_detection/W0794.feature +90 -0
  43. data/features/message_detection/W0830.feature +65 -0
  44. data/features/message_detection/W0833.feature +220 -0
  45. data/features/message_detection/W0834.feature +189 -0
  46. data/features/message_detection/W1026.feature +105 -0
  47. data/features/message_detection/W1031.feature +17 -34
  48. data/features/message_detection/W1039.feature +268 -0
  49. data/features/message_detection/W1047.feature +163 -0
  50. data/features/message_detection/W1066.feature +1 -0
  51. data/features/message_detection/W1067.feature +1 -0
  52. data/features/message_detection/W1068.feature +1 -0
  53. data/features/message_detection/W1069.feature +5 -0
  54. data/features/message_detection/W1070.feature +5 -0
  55. data/features/message_detection/W1071.feature +83 -0
  56. data/features/message_detection/W1073.feature +3 -2
  57. data/features/message_detection/W9003.feature +7 -12
  58. data/features/step_definitions/message_detection_steps.rb +4 -31
  59. data/features/support/env.rb +117 -2
  60. data/lib/adlint/c/branch.rb +0 -2
  61. data/lib/adlint/c/ctrlexpr.rb +33 -0
  62. data/lib/adlint/c/expr.rb +119 -31
  63. data/lib/adlint/c/interp.rb +44 -3
  64. data/lib/adlint/c/message.rb +1411 -29
  65. data/lib/adlint/c/object.rb +16 -2
  66. data/lib/adlint/c/option.rb +1 -0
  67. data/lib/adlint/c/parser.rb +101 -100
  68. data/lib/adlint/c/parser.y +3 -2
  69. data/lib/adlint/c/phase.rb +18 -0
  70. data/lib/adlint/c/resolver.rb +23 -0
  71. data/lib/adlint/c/syntax.rb +90 -4
  72. data/lib/adlint/c/type.rb +177 -110
  73. data/lib/adlint/cpp/macro.rb +4 -4
  74. data/lib/adlint/version.rb +2 -2
  75. data/share/demo/bad_include/test/"1/".h +0 -0
  76. data/share/doc/developers_guide_ja.html +3 -3
  77. data/share/doc/developers_guide_ja.texi +1 -1
  78. data/share/doc/users_guide_en.html +467 -506
  79. data/share/doc/users_guide_en.texi +95 -125
  80. data/share/doc/users_guide_ja.html +471 -518
  81. data/share/doc/users_guide_ja.texi +95 -133
  82. data/spec/spec_helper.rb +6 -0
  83. metadata +37 -10
@@ -2,7 +2,7 @@
2
2
  @setfilename users_guide_en.info
3
3
  @documentlanguage en
4
4
  @documentencoding utf-8
5
- @settitle AdLint 1.16.0 User's Guide
5
+ @settitle AdLint 1.18.0 User's Guide
6
6
 
7
7
  @copying
8
8
  Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
@@ -2791,12 +2791,11 @@ context_line
2791
2791
  * W1035::`%s' declared typedef. It cannot be redeclared inside an inner scope without using explicit type.
2792
2792
  * W1036::`%s' declared typedef. It cannot be redeclared as a member of structure or union without using explicit type.
2793
2793
  * W1037::`%s' which has external coupling is declared more than one, this is incompatible.
2794
- * W1039::`ll' is used in conversion specifier.
2794
+ * W1039::`ll' is used in %sth conversion specifier.
2795
2795
  * W1040::An unrecognizable string is described after preprocessing directive.
2796
2796
  * W1041::`%s' is not official preprocessing directive of ISO C standards.
2797
2797
  * W1042::'sizeof' operator is using in preprocessing directive. This is the language extension.
2798
2798
  * W1043::`@@ address' is not supported ISO C standards. It will be considered as language extension.
2799
- * W1044::An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.
2800
2799
  * W1045::This `@@ word' syntax will be ignored.
2801
2800
  * W1046::A space character is ignored between `\' and line feed.
2802
2801
  * W1047::The struct, union or array's initializer is not literal.
@@ -26214,14 +26213,15 @@ Floating-point number type cast to pointer to object and vice versa.
26214
26213
 
26215
26214
  @subsection Content
26216
26215
 
26217
- @b{This message will be supported in AdLint 2.0.0}
26218
-
26219
26216
  Under construction.
26220
26217
 
26221
26218
  @subsection Sample code
26222
26219
 
26223
26220
  @verbatim
26224
- /* will be added */
26221
+ int *foo(const float f)
26222
+ {
26223
+ return (int *) f; /* W0641 */
26224
+ }
26225
26225
  @end verbatim
26226
26226
 
26227
26227
  @subsection Related message
@@ -26230,7 +26230,7 @@ None.
26230
26230
 
26231
26231
  @subsection Since
26232
26232
 
26233
- 2.0.0 (planned)
26233
+ 1.18.0
26234
26234
 
26235
26235
  @node W0642
26236
26236
  @section W0642
@@ -26311,17 +26311,16 @@ A value in void statement is going to use. 'void' statement doesn't have a value
26311
26311
 
26312
26312
  @subsection Content
26313
26313
 
26314
- @b{This message will be supported in AdLint 2.0.0}
26315
-
26316
26314
  Under construction.
26317
26315
 
26318
26316
  @subsection Sample code
26319
26317
 
26320
26318
  @verbatim
26321
- extern void func(void);
26319
+ extern void foo(void);
26322
26320
 
26323
- if(func() == 0) { /* W0644 */
26324
- ...snip...
26321
+ int bar(void)
26322
+ {
26323
+ return (int) foo(); /* W0644 */
26325
26324
  }
26326
26325
  @end verbatim
26327
26326
 
@@ -26336,7 +26335,7 @@ if(func() == 0) { /* W0644 */
26336
26335
 
26337
26336
  @subsection Since
26338
26337
 
26339
- 2.0.0 (planned)
26338
+ 1.18.0
26340
26339
 
26341
26340
  @node W0645
26342
26341
  @section W0645
@@ -26413,15 +26412,15 @@ A right operand value of shift operand is negative constant value. This result i
26413
26412
 
26414
26413
  @subsection Content
26415
26414
 
26416
- @b{This message will be supported in AdLint 2.0.0}
26417
-
26418
26415
  Under construction.
26419
26416
 
26420
26417
  @subsection Sample code
26421
26418
 
26422
26419
  @verbatim
26423
- short a; /* 16bit */
26424
- a <<= -4; /* W0649 */
26420
+ int foo(int i)
26421
+ {
26422
+ return i << -1; /* W0649 */
26423
+ }
26425
26424
  @end verbatim
26426
26425
 
26427
26426
  @subsection Related message
@@ -26432,7 +26431,7 @@ a <<= -4; /* W0649 */
26432
26431
 
26433
26432
  @subsection Since
26434
26433
 
26435
- 2.0.0 (planned)
26434
+ 1.18.0
26436
26435
 
26437
26436
  @node W0650
26438
26437
  @section W0650
@@ -26444,15 +26443,15 @@ A right operand value of shift operator is much bigger than the bit size represe
26444
26443
 
26445
26444
  @subsection Content
26446
26445
 
26447
- @b{This message will be supported in AdLint 2.0.0}
26448
-
26449
26446
  Under construction.
26450
26447
 
26451
26448
  @subsection Sample code
26452
26449
 
26453
26450
  @verbatim
26454
- char b; /* 8bit */
26455
- a = b << 16; /* W0650 */
26451
+ unsigned int foo(unsigned int i)
26452
+ {
26453
+ return i << 32; /* W0650 */
26454
+ }
26456
26455
  @end verbatim
26457
26456
 
26458
26457
  @subsection Related message
@@ -26463,7 +26462,7 @@ a = b << 16; /* W0650 */
26463
26462
 
26464
26463
  @subsection Since
26465
26464
 
26466
- 2.0.0 (planned)
26465
+ 1.18.0
26467
26466
 
26468
26467
  @node W0653
26469
26468
  @section W0653
@@ -29085,16 +29084,18 @@ An array's index is out of range.
29085
29084
 
29086
29085
  @subsection Content
29087
29086
 
29088
- @b{This message will be supported in AdLint 2.0.0}
29089
-
29090
29087
  Under construction.
29091
29088
 
29092
29089
  @subsection Sample code
29093
29090
 
29094
29091
  @verbatim
29095
- int arr[10];
29092
+ extern int a[5];
29096
29093
 
29097
- arr[15] = 0; /* W0707 */
29094
+ int foo(void)
29095
+ {
29096
+ int i = a[5]; /* W0707 */
29097
+ return i;
29098
+ }
29098
29099
  @end verbatim
29099
29100
 
29100
29101
  @subsection Related message
@@ -29103,7 +29104,7 @@ None.
29103
29104
 
29104
29105
  @subsection Since
29105
29106
 
29106
- 2.0.0 (planned)
29107
+ 1.18.0
29107
29108
 
29108
29109
  @node W0708
29109
29110
  @section W0708
@@ -29412,15 +29413,15 @@ A right operand of shift operator is a constant value of the above bit field of
29412
29413
 
29413
29414
  @subsection Content
29414
29415
 
29415
- @b{This message will be supported in AdLint 2.0.0}
29416
-
29417
29416
  Under construction.
29418
29417
 
29419
29418
  @subsection Sample code
29420
29419
 
29421
29420
  @verbatim
29422
- unsigned char uc;
29423
- unsigned int ui = uc >> 8; /* W0719 */
29421
+ int foo(char c)
29422
+ {
29423
+ return c << 31; /* W0719 */
29424
+ }
29424
29425
  @end verbatim
29425
29426
 
29426
29427
  @subsection Related message
@@ -29429,7 +29430,7 @@ None.
29429
29430
 
29430
29431
  @subsection Since
29431
29432
 
29432
- 2.0.0 (planned)
29433
+ 1.18.0
29433
29434
 
29434
29435
  @node W0720
29435
29436
  @section W0720
@@ -31733,14 +31734,15 @@ Unsigned left shift operator `<<' in constant expression truncate non-zero high-
31733
31734
 
31734
31735
  @subsection Content
31735
31736
 
31736
- @b{This message will be supported in AdLint 2.0.0}
31737
-
31738
31737
  Under construction.
31739
31738
 
31740
31739
  @subsection Sample code
31741
31740
 
31742
31741
  @verbatim
31743
- unsigned int ui = 0x0F000000U << 8; /* W0780 */
31742
+ unsigned int foo(void)
31743
+ {
31744
+ return 0x08000000U << 5; /* W0780 */
31745
+ }
31744
31746
  @end verbatim
31745
31747
 
31746
31748
  @subsection Related message
@@ -31749,7 +31751,7 @@ None.
31749
31751
 
31750
31752
  @subsection Since
31751
31753
 
31752
- 2.0.0 (planned)
31754
+ 1.18.0
31753
31755
 
31754
31756
  @node W0781
31755
31757
  @section W0781
@@ -31811,14 +31813,17 @@ Cast is being made including the pointer point to incomplete type. This program
31811
31813
 
31812
31814
  @subsection Content
31813
31815
 
31814
- @b{This message will be supported in AdLint 2.0.0}
31815
-
31816
31816
  Under construction.
31817
31817
 
31818
31818
  @subsection Sample code
31819
31819
 
31820
31820
  @verbatim
31821
- /* will be added */
31821
+ extern struct Foo *gp;
31822
+
31823
+ void foo(int *p)
31824
+ {
31825
+ gp = (struct Foo *) p; /* W0783 */
31826
+ }
31822
31827
  @end verbatim
31823
31828
 
31824
31829
  @subsection Related message
@@ -31827,7 +31832,7 @@ None.
31827
31832
 
31828
31833
  @subsection Since
31829
31834
 
31830
- 2.0.0 (planned)
31835
+ 1.18.0
31831
31836
 
31832
31837
  @node W0784
31833
31838
  @section W0784
@@ -32123,14 +32128,15 @@ A floating point type object cast to function pointer and vice versa.
32123
32128
 
32124
32129
  @subsection Content
32125
32130
 
32126
- @b{This message will be supported in AdLint 2.0.0}
32127
-
32128
32131
  Under construction.
32129
32132
 
32130
32133
  @subsection Sample code
32131
32134
 
32132
32135
  @verbatim
32133
- /* will be added */
32136
+ int (*foo(const float f))(void)
32137
+ {
32138
+ return (int (*)(void)) f; /* W0792 */
32139
+ }
32134
32140
  @end verbatim
32135
32141
 
32136
32142
  @subsection Related message
@@ -32139,7 +32145,7 @@ None.
32139
32145
 
32140
32146
  @subsection Since
32141
32147
 
32142
- 2.0.0 (planned)
32148
+ 1.18.0
32143
32149
 
32144
32150
  @node W0793
32145
32151
  @section W0793
@@ -32151,14 +32157,17 @@ A function pointer cast to pointer to point an object and vice versa.
32151
32157
 
32152
32158
  @subsection Content
32153
32159
 
32154
- @b{This message will be supported in AdLint 2.0.0}
32155
-
32156
32160
  Under construction.
32157
32161
 
32158
32162
  @subsection Sample code
32159
32163
 
32160
32164
  @verbatim
32161
- /* will be added */
32165
+ typedef int (*funptr_t)(void);
32166
+
32167
+ funptr_t foo(float *p)
32168
+ {
32169
+ return (funptr_t) p; /* W0793 */
32170
+ }
32162
32171
  @end verbatim
32163
32172
 
32164
32173
  @subsection Related message
@@ -32167,7 +32176,7 @@ None.
32167
32176
 
32168
32177
  @subsection Since
32169
32178
 
32170
- 2.0.0 (planned)
32179
+ 1.18.0
32171
32180
 
32172
32181
  @node W0794
32173
32182
  @section W0794
@@ -32179,15 +32188,15 @@ Left shift operation to signed operand.
32179
32188
 
32180
32189
  @subsection Content
32181
32190
 
32182
- @b{This message will be supported in AdLint 2.0.0}
32183
-
32184
32191
  Under construction.
32185
32192
 
32186
32193
  @subsection Sample code
32187
32194
 
32188
32195
  @verbatim
32189
- int a = 0x40000000;
32190
- a <<= 3; /* W0794 */
32196
+ int func(int i)
32197
+ {
32198
+ return i << 1; /* W0794 */
32199
+ }
32191
32200
  @end verbatim
32192
32201
 
32193
32202
  @subsection Related message
@@ -32196,7 +32205,7 @@ None.
32196
32205
 
32197
32206
  @subsection Since
32198
32207
 
32199
- 2.0.0 (planned)
32208
+ 1.18.0
32200
32209
 
32201
32210
  @node W0795
32202
32211
  @section W0795
@@ -32827,18 +32836,12 @@ There is comma `,' at the end of the enumerator list.
32827
32836
 
32828
32837
  @subsection Content
32829
32838
 
32830
- @b{This message will be supported in AdLint 2.0.0}
32831
-
32832
32839
  Under construction.
32833
32840
 
32834
32841
  @subsection Sample code
32835
32842
 
32836
32843
  @verbatim
32837
- enum COLOR {
32838
- RED,
32839
- BLUE,
32840
- GREEN, /* W0830 */
32841
- };
32844
+ enum Color { Red, Green, Blue, }; /* W0830 */
32842
32845
  @end verbatim
32843
32846
 
32844
32847
  @subsection Related message
@@ -32847,7 +32850,7 @@ None.
32847
32850
 
32848
32851
  @subsection Since
32849
32852
 
32850
- 2.0.0 (planned)
32853
+ 1.18.0
32851
32854
 
32852
32855
  @node W0831
32853
32856
  @section W0831
@@ -32936,14 +32939,12 @@ A suffix 'LL' is using.
32936
32939
 
32937
32940
  @subsection Content
32938
32941
 
32939
- @b{This message will be supported in AdLint 2.0.0}
32940
-
32941
32942
  Under construction.
32942
32943
 
32943
32944
  @subsection Sample code
32944
32945
 
32945
32946
  @verbatim
32946
- long long int a = 0LL; /* W0833 */
32947
+ long long ll = 123LL; /* W0833 */
32947
32948
  @end verbatim
32948
32949
 
32949
32950
  @subsection Related message
@@ -32954,7 +32955,7 @@ long long int a = 0LL; /* W0833 */
32954
32955
 
32955
32956
  @subsection Since
32956
32957
 
32957
- 2.0.0 (planned)
32958
+ 1.18.0
32958
32959
 
32959
32960
  @node W0834
32960
32961
  @section W0834
@@ -32966,14 +32967,12 @@ A long long type is using.
32966
32967
 
32967
32968
  @subsection Content
32968
32969
 
32969
- @b{This message will be supported in AdLint 2.0.0}
32970
-
32971
32970
  Under construction.
32972
32971
 
32973
32972
  @subsection Sample code
32974
32973
 
32975
32974
  @verbatim
32976
- long long a = 0; /* W0834 */
32975
+ extern long long ll; /* W0834 */
32977
32976
  @end verbatim
32978
32977
 
32979
32978
  @subsection Related message
@@ -32984,7 +32983,7 @@ long long a = 0; /* W0834 */
32984
32983
 
32985
32984
  @subsection Since
32986
32985
 
32987
- 2.0.0 (planned)
32986
+ 1.18.0
32988
32987
 
32989
32988
  @node W0835
32990
32989
  @section W0835
@@ -33148,14 +33147,18 @@ int a[10]; /* W0950 */
33148
33147
 
33149
33148
  @subsection Content
33150
33149
 
33151
- @b{This message will be supported in AdLint 2.0.0}
33152
-
33153
33150
  Under construction.
33154
33151
 
33155
33152
  @subsection Sample code
33156
33153
 
33157
33154
  @verbatim
33158
- /* will be added */
33155
+ extern struct st s;
33156
+ extern void foo(struct st);
33157
+
33158
+ void bar(void)
33159
+ {
33160
+ foo(s); /* W1026 */
33161
+ }
33159
33162
  @end verbatim
33160
33163
 
33161
33164
  @subsection Related message
@@ -33164,7 +33167,7 @@ None.
33164
33167
 
33165
33168
  @subsection Since
33166
33169
 
33167
- 2.0.0 (planned)
33170
+ 1.18.0
33168
33171
 
33169
33172
  @node W1027
33170
33173
  @section W1027
@@ -33523,18 +33526,21 @@ None.
33523
33526
 
33524
33527
  @subsection Message body
33525
33528
 
33526
- `ll' is used in conversion specifier.
33529
+ `ll' is used in %sth conversion specifier.
33527
33530
 
33528
33531
  @subsection Content
33529
33532
 
33530
- @b{This message will be supported in AdLint 2.0.0}
33531
-
33532
33533
  Under construction.
33533
33534
 
33534
33535
  @subsection Sample code
33535
33536
 
33536
33537
  @verbatim
33537
- /* will be added */
33538
+ extern int printf(const char *, ...);
33539
+
33540
+ void foo(long long ll)
33541
+ {
33542
+ printf("%lld", ll); /* W1039 */
33543
+ }
33538
33544
  @end verbatim
33539
33545
 
33540
33546
  @subsection Related message
@@ -33543,7 +33549,7 @@ None.
33543
33549
 
33544
33550
  @subsection Since
33545
33551
 
33546
- 2.0.0 (planned)
33552
+ 1.18.0
33547
33553
 
33548
33554
  @node W1040
33549
33555
  @section W1040
@@ -33667,7 +33673,6 @@ Under construction.
33667
33673
  @subsection Related message
33668
33674
 
33669
33675
  @itemize
33670
- @item @ref{W1044} An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.
33671
33676
  @item @ref{W1045} This `@@ word' syntax will be ignored.
33672
33677
  @end itemize
33673
33678
 
@@ -33675,37 +33680,6 @@ Under construction.
33675
33680
 
33676
33681
  After 2.0.0 (planned)
33677
33682
 
33678
- @node W1044
33679
- @section W1044
33680
- @cindex W1044
33681
-
33682
- @subsection Message body
33683
-
33684
- An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.
33685
-
33686
- @subsection Content
33687
-
33688
- @b{This message will be supported in AdLint 2.0.0}
33689
-
33690
- Under construction.
33691
-
33692
- @subsection Sample code
33693
-
33694
- @verbatim
33695
- /* will be added */
33696
- @end verbatim
33697
-
33698
- @subsection Related message
33699
-
33700
- @itemize
33701
- @item @ref{W1043} `@@ address' is not supported ISO C standards. It will be considered as language extension.
33702
- @item @ref{W1045} This `@@ word' syntax will be ignored.
33703
- @end itemize
33704
-
33705
- @subsection Since
33706
-
33707
- 2.0.0 (planned)
33708
-
33709
33683
  @node W1045
33710
33684
  @section W1045
33711
33685
  @cindex W1045
@@ -33730,7 +33704,6 @@ Under construction.
33730
33704
 
33731
33705
  @itemize
33732
33706
  @item @ref{W1043} `@@ address' is not supported ISO C standards. It will be considered as language extension.
33733
- @item @ref{W1044} An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.
33734
33707
  @end itemize
33735
33708
 
33736
33709
  @subsection Since
@@ -33776,14 +33749,16 @@ The struct, union or array's initializer is not literal.
33776
33749
 
33777
33750
  @subsection Content
33778
33751
 
33779
- @b{This message will be supported in AdLint 2.0.0}
33780
-
33781
33752
  Under construction.
33782
33753
 
33783
33754
  @subsection Sample code
33784
33755
 
33785
33756
  @verbatim
33786
- /* will be added */
33757
+ int foo(int i, int j)
33758
+ {
33759
+ int a[] = { 0, i, j }; /* W1047 */
33760
+ return a[1];
33761
+ }
33787
33762
  @end verbatim
33788
33763
 
33789
33764
  @subsection Related message
@@ -33792,7 +33767,7 @@ None.
33792
33767
 
33793
33768
  @subsection Since
33794
33769
 
33795
- 2.0.0 (planned)
33770
+ 1.18.0
33796
33771
 
33797
33772
  @node W1048
33798
33773
  @section W1048
@@ -34761,20 +34736,15 @@ Function `%s' has multiple termination points.
34761
34736
 
34762
34737
  @subsection Content
34763
34738
 
34764
- @b{This message will be supported in AdLint 2.0.0}
34765
-
34766
34739
  Under construction.
34767
34740
 
34768
34741
  @subsection Sample code
34769
34742
 
34770
34743
  @verbatim
34771
- int func(int a)
34744
+ void foo(int i) /* W1071 */
34772
34745
  {
34773
- if( a == 0 ) {
34774
- return 0;
34775
- }
34776
- else {
34777
- return 1; /* W1071 */
34746
+ if (i == 0) {
34747
+ return;
34778
34748
  }
34779
34749
  }
34780
34750
  @end verbatim
@@ -34785,7 +34755,7 @@ None.
34785
34755
 
34786
34756
  @subsection Since
34787
34757
 
34788
- 2.0.0 (planned)
34758
+ 1.18.0
34789
34759
 
34790
34760
  @node W1072
34791
34761
  @section W1072