adlint 3.0.4 → 3.0.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.
- data/ChangeLog +374 -13
- data/INSTALL +1 -3
- data/MANIFEST +12 -0
- data/NEWS +30 -4
- data/README +0 -4
- data/TODO +2 -1
- data/etc/mesg.d/c_builtin/en_US/messages.yml +2 -2
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2 -2
- data/etc/mesg.d/core/en_US/messages.yml +5 -1
- data/etc/mesg.d/core/ja_JP/messages.yml +5 -1
- data/features/code_check/W0422.feature +128 -0
- data/features/code_check/W0491.feature +57 -0
- data/features/code_check/W0492.feature +80 -0
- data/features/code_check/W0542.feature +20 -0
- data/features/code_check/W0580.feature +25 -0
- data/features/code_check/W0610.feature +36 -0
- data/features/code_check/W0642.feature +67 -0
- data/features/code_check/W0786.feature +39 -0
- data/features/code_check/W0830.feature +27 -0
- data/features/code_check/W1047.feature +72 -0
- data/features/code_check/W9003.feature +22 -0
- data/features/code_extraction/TODO +1 -0
- data/features/metric_measurement/TODO +1 -0
- data/lib/adlint/analyzer.rb +2 -2
- data/lib/adlint/cc1/ctrlexpr.rb +27 -6
- data/lib/adlint/cc1/domain.rb +72 -12
- data/lib/adlint/cc1/enum.rb +4 -0
- data/lib/adlint/cc1/expr.rb +31 -29
- data/lib/adlint/cc1/interp.rb +45 -56
- data/lib/adlint/cc1/lexer.rb +26 -5
- data/lib/adlint/cc1/mediator.rb +35 -6
- data/lib/adlint/cc1/object.rb +62 -19
- data/lib/adlint/cc1/parser.rb +948 -904
- data/lib/adlint/cc1/parser.y +59 -29
- data/lib/adlint/cc1/phase.rb +6 -8
- data/lib/adlint/cc1/syntax.rb +70 -17
- data/lib/adlint/cc1/util.rb +4 -4
- data/lib/adlint/code.rb +16 -6
- data/lib/adlint/cpp/eval.rb +31 -25
- data/lib/adlint/cpp/lexer.rb +11 -5
- data/lib/adlint/cpp/macro.rb +34 -7
- data/lib/adlint/cpp/phase.rb +8 -8
- data/lib/adlint/error.rb +6 -0
- data/lib/adlint/exam/c_builtin/cc1_check.rb +557 -594
- data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +72 -72
- data/lib/adlint/exam/c_builtin/cc1_code.rb +72 -52
- data/lib/adlint/exam/c_builtin/cc1_metric.rb +131 -131
- data/lib/adlint/exam/c_builtin/cpp_check.rb +48 -48
- data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +2 -2
- data/lib/adlint/exam/c_builtin/cpp_code.rb +21 -21
- data/lib/adlint/exam/c_builtin/ld_check.rb +88 -87
- data/lib/adlint/exam/c_builtin/ld_metric.rb +4 -5
- data/lib/adlint/exam/c_builtin.rb +6 -6
- data/lib/adlint/ld/object.rb +269 -186
- data/lib/adlint/ld/phase.rb +19 -19
- data/lib/adlint/ld/typedef.rb +7 -7
- data/lib/adlint/ld/util.rb +25 -17
- data/lib/adlint/location.rb +6 -1
- data/lib/adlint/memo.rb +66 -13
- data/lib/adlint/prelude.rb +2 -2
- data/lib/adlint/report.rb +13 -14
- data/lib/adlint/util.rb +1 -1
- data/lib/adlint/version.rb +2 -2
- data/share/doc/Makefile +6 -2
- data/share/doc/c99gram.dot +502 -0
- data/share/doc/c99gram.pdf +0 -0
- data/share/doc/developers_guide_ja.html +4 -3
- data/share/doc/developers_guide_ja.texi +2 -1
- data/share/doc/users_guide_en.html +9 -9
- data/share/doc/users_guide_en.texi +7 -7
- data/share/doc/users_guide_ja.html +9 -9
- data/share/doc/users_guide_ja.texi +7 -7
- metadata +14 -2
@@ -44,24 +44,24 @@ module CBuiltin #:nodoc:
|
|
44
44
|
def initialize(phase_ctxt)
|
45
45
|
super
|
46
46
|
@fpath = phase_ctxt[:sources].first.fpath
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
47
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
48
|
+
traversal.enter_error_statement += T(:count_statement)
|
49
|
+
traversal.enter_generic_labeled_statement += T(:count_statement)
|
50
|
+
traversal.enter_case_labeled_statement += T(:count_statement)
|
51
|
+
traversal.enter_default_labeled_statement += T(:count_statement)
|
52
|
+
traversal.enter_expression_statement += T(:count_statement)
|
53
|
+
traversal.enter_if_statement += T(:count_statement)
|
54
|
+
traversal.enter_if_else_statement += T(:count_statement)
|
55
|
+
traversal.enter_switch_statement += T(:count_statement)
|
56
|
+
traversal.enter_while_statement += T(:count_statement)
|
57
|
+
traversal.enter_do_statement += T(:count_statement)
|
58
|
+
traversal.enter_for_statement += T(:count_statement)
|
59
|
+
traversal.enter_c99_for_statement += T(:count_statement)
|
60
|
+
traversal.enter_goto_statement += T(:count_statement)
|
61
|
+
traversal.enter_continue_statement += T(:count_statement)
|
62
|
+
traversal.enter_break_statement += T(:count_statement)
|
63
|
+
traversal.enter_return_statement += T(:count_statement)
|
64
|
+
traversal.leave_translation_unit += M(:measure)
|
65
65
|
@stmt_cnt = 0
|
66
66
|
end
|
67
67
|
|
@@ -86,10 +86,10 @@ module CBuiltin #:nodoc:
|
|
86
86
|
def initialize(phase_ctxt)
|
87
87
|
super
|
88
88
|
@fpath = phase_ctxt[:sources].first.fpath
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
89
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
90
|
+
traversal.enter_ansi_function_definition += T(:count_function)
|
91
|
+
traversal.enter_kandr_function_definition += T(:count_function)
|
92
|
+
traversal.leave_translation_unit += M(:measure)
|
93
93
|
@fun_cnt = 0
|
94
94
|
end
|
95
95
|
|
@@ -114,27 +114,27 @@ module CBuiltin #:nodoc:
|
|
114
114
|
def initialize(phase_ctxt)
|
115
115
|
super
|
116
116
|
@fpath = phase_ctxt[:sources].first.fpath
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
117
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
118
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
119
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
120
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
121
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
122
|
+
traversal.enter_error_statement += T(:count_statement)
|
123
|
+
traversal.enter_generic_labeled_statement += T(:count_statement)
|
124
|
+
traversal.enter_case_labeled_statement += T(:count_statement)
|
125
|
+
traversal.enter_default_labeled_statement += T(:count_statement)
|
126
|
+
traversal.enter_expression_statement += T(:count_statement)
|
127
|
+
traversal.enter_if_statement += T(:count_statement)
|
128
|
+
traversal.enter_if_else_statement += T(:count_statement)
|
129
|
+
traversal.enter_switch_statement += T(:count_statement)
|
130
|
+
traversal.enter_while_statement += T(:count_statement)
|
131
|
+
traversal.enter_do_statement += T(:count_statement)
|
132
|
+
traversal.enter_for_statement += T(:count_statement)
|
133
|
+
traversal.enter_c99_for_statement += T(:count_statement)
|
134
|
+
traversal.enter_goto_statement += T(:count_statement)
|
135
|
+
traversal.enter_continue_statement += T(:count_statement)
|
136
|
+
traversal.enter_break_statement += T(:count_statement)
|
137
|
+
traversal.enter_return_statement += T(:count_statement)
|
138
138
|
@cur_fun = nil
|
139
139
|
@stmt_cnt = 0
|
140
140
|
end
|
@@ -172,27 +172,27 @@ module CBuiltin #:nodoc:
|
|
172
172
|
def initialize(phase_ctxt)
|
173
173
|
super
|
174
174
|
@fpath = phase_ctxt[:sources].first.fpath
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
175
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
176
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
177
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
178
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
179
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
180
|
+
traversal.enter_error_statement += T(:count_statement)
|
181
|
+
traversal.enter_generic_labeled_statement += T(:count_statement)
|
182
|
+
traversal.enter_case_labeled_statement += T(:count_statement)
|
183
|
+
traversal.enter_default_labeled_statement += T(:count_statement)
|
184
|
+
traversal.enter_expression_statement += T(:count_statement)
|
185
|
+
traversal.enter_if_statement += T(:count_statement)
|
186
|
+
traversal.enter_if_else_statement += T(:count_statement)
|
187
|
+
traversal.enter_switch_statement += T(:count_statement)
|
188
|
+
traversal.enter_while_statement += T(:count_statement)
|
189
|
+
traversal.enter_do_statement += T(:count_statement)
|
190
|
+
traversal.enter_for_statement += T(:count_statement)
|
191
|
+
traversal.enter_c99_for_statement += T(:count_statement)
|
192
|
+
traversal.enter_goto_statement += T(:count_statement)
|
193
|
+
traversal.enter_continue_statement += T(:count_statement)
|
194
|
+
traversal.enter_break_statement += T(:count_statement)
|
195
|
+
traversal.enter_return_statement += T(:count_statement)
|
196
196
|
@cur_fun = nil
|
197
197
|
@unreached_stmt_cnt = 0
|
198
198
|
end
|
@@ -231,9 +231,9 @@ module CBuiltin #:nodoc:
|
|
231
231
|
def initialize(phase_ctxt)
|
232
232
|
super
|
233
233
|
@fpath = phase_ctxt[:sources].first.fpath
|
234
|
-
|
235
|
-
|
236
|
-
|
234
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
235
|
+
traversal.enter_ansi_function_definition += T(:measure)
|
236
|
+
traversal.enter_kandr_function_definition += T(:measure)
|
237
237
|
end
|
238
238
|
|
239
239
|
private
|
@@ -255,9 +255,9 @@ module CBuiltin #:nodoc:
|
|
255
255
|
def initialize(phase_ctxt)
|
256
256
|
super
|
257
257
|
@fpath = phase_ctxt[:sources].first.fpath
|
258
|
-
|
259
|
-
|
260
|
-
|
258
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
259
|
+
traversal.enter_ansi_function_definition += T(:measure_ansi_function)
|
260
|
+
traversal.enter_kandr_function_definition += T(:measure_kandr_function)
|
261
261
|
end
|
262
262
|
|
263
263
|
private
|
@@ -364,12 +364,12 @@ module CBuiltin #:nodoc:
|
|
364
364
|
def initialize(phase_ctxt)
|
365
365
|
super
|
366
366
|
@fpath = phase_ctxt[:sources].first.fpath
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
367
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
368
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
369
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
370
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
371
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
372
|
+
traversal.enter_function_call_expression += T(:count_function_call)
|
373
373
|
@cur_fun = nil
|
374
374
|
@funcall_cnt = 0
|
375
375
|
end
|
@@ -408,12 +408,12 @@ module CBuiltin #:nodoc:
|
|
408
408
|
def initialize(phase_ctxt)
|
409
409
|
super
|
410
410
|
@fpath = phase_ctxt[:sources].first.fpath
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
411
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
412
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
413
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
414
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
415
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
416
|
+
traversal.enter_goto_statement += T(:count_goto)
|
417
417
|
@cur_fun = nil
|
418
418
|
@goto_cnt = 0
|
419
419
|
end
|
@@ -452,27 +452,27 @@ module CBuiltin #:nodoc:
|
|
452
452
|
def initialize(phase_ctxt)
|
453
453
|
super
|
454
454
|
@fpath = phase_ctxt[:sources].first.fpath
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
455
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
456
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
457
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
458
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
459
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
460
|
+
traversal.enter_error_statement += T(:enter_statement)
|
461
|
+
traversal.enter_generic_labeled_statement += T(:enter_statement)
|
462
|
+
traversal.enter_case_labeled_statement += T(:enter_statement)
|
463
|
+
traversal.enter_default_labeled_statement += T(:enter_statement)
|
464
|
+
traversal.enter_expression_statement += T(:enter_statement)
|
465
|
+
traversal.enter_if_statement += T(:enter_statement)
|
466
|
+
traversal.enter_if_else_statement += T(:enter_statement)
|
467
|
+
traversal.enter_switch_statement += T(:enter_statement)
|
468
|
+
traversal.enter_while_statement += T(:enter_statement)
|
469
|
+
traversal.enter_do_statement += T(:enter_statement)
|
470
|
+
traversal.enter_for_statement += T(:enter_statement)
|
471
|
+
traversal.enter_c99_for_statement += T(:enter_statement)
|
472
|
+
traversal.enter_goto_statement += T(:enter_statement)
|
473
|
+
traversal.enter_continue_statement += T(:enter_statement)
|
474
|
+
traversal.enter_break_statement += T(:enter_statement)
|
475
|
+
traversal.enter_return_statement += T(:count_return)
|
476
476
|
@cur_fun = nil
|
477
477
|
@retn_cnt = 0
|
478
478
|
@last_stmt = nil
|
@@ -528,13 +528,13 @@ module CBuiltin #:nodoc:
|
|
528
528
|
def initialize(phase_ctxt)
|
529
529
|
super
|
530
530
|
@fpath = phase_ctxt[:sources].first.fpath
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
531
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
532
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
533
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
534
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
535
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
536
|
+
traversal.enter_if_else_statement += T(:enter_if_else_statement)
|
537
|
+
traversal.leave_if_else_statement += T(:leave_if_else_statement)
|
538
538
|
@cur_fun = nil
|
539
539
|
@if_else_stmt_chain = 0
|
540
540
|
@incomplete_if_else_stmt_cnt = 0
|
@@ -584,19 +584,19 @@ module CBuiltin #:nodoc:
|
|
584
584
|
def initialize(phase_ctxt)
|
585
585
|
super
|
586
586
|
@fpath = phase_ctxt[:sources].first.fpath
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
587
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
588
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
589
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
590
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
591
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
592
|
+
traversal.enter_compound_statement += T(:enter_block)
|
593
|
+
traversal.leave_compound_statement += T(:leave_block)
|
594
|
+
traversal.enter_if_statement += T(:check_statement)
|
595
|
+
traversal.enter_if_else_statement += T(:check_statement)
|
596
|
+
traversal.enter_while_statement += T(:check_statement)
|
597
|
+
traversal.enter_do_statement += T(:check_statement)
|
598
|
+
traversal.enter_for_statement += T(:check_statement)
|
599
|
+
traversal.enter_c99_for_statement += T(:check_statement)
|
600
600
|
@cur_fun = nil
|
601
601
|
end
|
602
602
|
|
@@ -752,14 +752,14 @@ module CBuiltin #:nodoc:
|
|
752
752
|
def initialize(phase_ctxt)
|
753
753
|
super
|
754
754
|
@fpath = phase_ctxt[:sources].first.fpath
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
755
|
+
traversal = phase_ctxt[:cc1_ast_traversal]
|
756
|
+
traversal.enter_ansi_function_definition += T(:enter_function)
|
757
|
+
traversal.leave_ansi_function_definition += T(:leave_function)
|
758
|
+
traversal.enter_kandr_function_definition += T(:enter_function)
|
759
|
+
traversal.leave_kandr_function_definition += T(:leave_function)
|
760
|
+
traversal.enter_if_statement += T(:enter_selection)
|
761
|
+
traversal.enter_if_else_statement += T(:enter_selection)
|
762
|
+
traversal.enter_case_labeled_statement += T(:enter_selection)
|
763
763
|
@cur_fun = nil
|
764
764
|
@cycl_compl = 0
|
765
765
|
end
|
@@ -48,9 +48,9 @@ module CBuiltin #:nodoc:
|
|
48
48
|
|
49
49
|
def initialize(phase_ctxt)
|
50
50
|
super
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
52
|
+
traversal.enter_grouped_expression += T(:enter_grouped_expression)
|
53
|
+
traversal.leave_grouped_expression += T(:leave_grouped_expression)
|
54
54
|
@group_depth = 0
|
55
55
|
end
|
56
56
|
|
@@ -155,9 +155,9 @@ module CBuiltin #:nodoc:
|
|
155
155
|
|
156
156
|
def initialize(phase_ctxt)
|
157
157
|
super
|
158
|
-
|
159
|
-
|
160
|
-
|
158
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
159
|
+
traversal.enter_if_section += T(:enter_if_section)
|
160
|
+
traversal.leave_if_section += T(:leave_if_section)
|
161
161
|
@if_depth = 0
|
162
162
|
end
|
163
163
|
|
@@ -355,9 +355,9 @@ module CBuiltin #:nodoc:
|
|
355
355
|
|
356
356
|
def initialize(phase_ctxt)
|
357
357
|
super
|
358
|
-
|
359
|
-
|
360
|
-
|
358
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
359
|
+
traversal.enter_user_include_line += T(:check_user_include_line)
|
360
|
+
traversal.enter_system_include_line += T(:check_system_include_line)
|
361
361
|
end
|
362
362
|
|
363
363
|
private
|
@@ -383,11 +383,11 @@ module CBuiltin #:nodoc:
|
|
383
383
|
|
384
384
|
def initialize(phase_ctxt)
|
385
385
|
super
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
386
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
387
|
+
traversal.enter_user_include_line += T(:enter_include_line)
|
388
|
+
traversal.enter_system_include_line += T(:enter_include_line)
|
389
|
+
traversal.enter_text_line += T(:enter_text_line)
|
390
|
+
traversal.enter_if_section += T(:enter_if_section)
|
391
391
|
@main_fpath = phase_ctxt[:sources].first.fpath
|
392
392
|
@last_fpath = nil
|
393
393
|
@enclosed_by_if_section = false
|
@@ -496,9 +496,9 @@ module CBuiltin #:nodoc:
|
|
496
496
|
|
497
497
|
def initialize(phase_ctxt)
|
498
498
|
super
|
499
|
-
|
500
|
-
|
501
|
-
|
499
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
500
|
+
traversal.enter_function_like_define_line += T(:check)
|
501
|
+
traversal.enter_va_function_like_define_line += T(:check)
|
502
502
|
end
|
503
503
|
|
504
504
|
private
|
@@ -663,10 +663,10 @@ module CBuiltin #:nodoc:
|
|
663
663
|
|
664
664
|
def initialize(phase_ctxt)
|
665
665
|
super
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
666
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
667
|
+
traversal.enter_object_like_define_line += T(:check)
|
668
|
+
traversal.enter_function_like_define_line += T(:check)
|
669
|
+
traversal.enter_va_function_like_define_line += T(:check)
|
670
670
|
end
|
671
671
|
|
672
672
|
private
|
@@ -693,8 +693,8 @@ module CBuiltin #:nodoc:
|
|
693
693
|
|
694
694
|
def initialize(phase_ctxt)
|
695
695
|
super
|
696
|
-
|
697
|
-
|
696
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
697
|
+
traversal.enter_object_like_define_line += T(:check)
|
698
698
|
end
|
699
699
|
|
700
700
|
private
|
@@ -716,10 +716,10 @@ module CBuiltin #:nodoc:
|
|
716
716
|
|
717
717
|
def initialize(phase_ctxt)
|
718
718
|
super
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
719
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
720
|
+
traversal.enter_object_like_define_line += T(:check)
|
721
|
+
traversal.enter_function_like_define_line += T(:check)
|
722
|
+
traversal.enter_va_function_like_define_line += T(:check)
|
723
723
|
end
|
724
724
|
|
725
725
|
private
|
@@ -741,10 +741,10 @@ module CBuiltin #:nodoc:
|
|
741
741
|
|
742
742
|
def initialize(phase_ctxt)
|
743
743
|
super
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
744
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
745
|
+
traversal.enter_object_like_define_line += T(:check)
|
746
|
+
traversal.enter_function_like_define_line += T(:check)
|
747
|
+
traversal.enter_va_function_like_define_line += T(:check)
|
748
748
|
end
|
749
749
|
|
750
750
|
private
|
@@ -764,8 +764,8 @@ module CBuiltin #:nodoc:
|
|
764
764
|
|
765
765
|
def initialize(phase_ctxt)
|
766
766
|
super
|
767
|
-
|
768
|
-
|
767
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
768
|
+
traversal.enter_object_like_define_line += T(:check)
|
769
769
|
end
|
770
770
|
|
771
771
|
private
|
@@ -801,8 +801,8 @@ module CBuiltin #:nodoc:
|
|
801
801
|
|
802
802
|
def initialize(phase_ctxt)
|
803
803
|
super
|
804
|
-
|
805
|
-
|
804
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
805
|
+
traversal.enter_object_like_define_line += T(:check)
|
806
806
|
end
|
807
807
|
|
808
808
|
private
|
@@ -1066,9 +1066,9 @@ module CBuiltin #:nodoc:
|
|
1066
1066
|
|
1067
1067
|
def initialize(phase_ctxt)
|
1068
1068
|
super
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1069
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
1070
|
+
traversal.enter_system_include_line += T(:check)
|
1071
|
+
traversal.enter_system_include_next_line += T(:check)
|
1072
1072
|
end
|
1073
1073
|
|
1074
1074
|
private
|
@@ -1088,9 +1088,9 @@ module CBuiltin #:nodoc:
|
|
1088
1088
|
|
1089
1089
|
def initialize(phase_ctxt)
|
1090
1090
|
super
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1091
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
1092
|
+
traversal.enter_user_include_line += T(:check)
|
1093
|
+
traversal.enter_user_include_next_line += T(:check)
|
1094
1094
|
end
|
1095
1095
|
|
1096
1096
|
private
|
@@ -1110,11 +1110,11 @@ module CBuiltin #:nodoc:
|
|
1110
1110
|
|
1111
1111
|
def initialize(phase_ctxt)
|
1112
1112
|
super
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1113
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
1114
|
+
traversal.enter_user_include_line += T(:check)
|
1115
|
+
traversal.enter_user_include_next_line += T(:check)
|
1116
|
+
traversal.enter_system_include_line += T(:check)
|
1117
|
+
traversal.enter_system_include_next_line += T(:check)
|
1118
1118
|
end
|
1119
1119
|
|
1120
1120
|
private
|
@@ -1327,8 +1327,8 @@ module CBuiltin #:nodoc:
|
|
1327
1327
|
|
1328
1328
|
def initialize(phase_ctxt)
|
1329
1329
|
super
|
1330
|
-
|
1331
|
-
|
1330
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
1331
|
+
traversal.enter_unknown_directive += T(:check)
|
1332
1332
|
end
|
1333
1333
|
|
1334
1334
|
private
|
@@ -37,7 +37,7 @@ module AdLint #:nodoc:
|
|
37
37
|
module Exam #:nodoc:
|
38
38
|
module CBuiltin #:nodoc:
|
39
39
|
|
40
|
-
class
|
40
|
+
class ObjLikeMacroExtraction < CodeExtraction
|
41
41
|
def_registrant_phase Cpp::Prepare2Phase
|
42
42
|
|
43
43
|
def initialize(phase_ctxt)
|
@@ -55,7 +55,7 @@ module CBuiltin #:nodoc:
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
class
|
58
|
+
class FunLikeMacroExtraction < CodeExtraction
|
59
59
|
def_registrant_phase Cpp::Prepare2Phase
|
60
60
|
|
61
61
|
def initialize(phase_ctxt)
|
@@ -102,23 +102,23 @@ module CBuiltin #:nodoc:
|
|
102
102
|
|
103
103
|
def initialize(phase_ctxt)
|
104
104
|
super
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
105
|
+
traversal = phase_ctxt[:cpp_ast_traversal]
|
106
|
+
traversal.enter_if_statement += T(:extract_if)
|
107
|
+
traversal.enter_ifdef_statement += T(:extract_ifdef)
|
108
|
+
traversal.enter_ifndef_statement += T(:extract_ifndef)
|
109
|
+
traversal.enter_elif_statement += T(:extract_elif)
|
110
|
+
traversal.enter_else_statement += T(:extract_else)
|
111
|
+
traversal.enter_endif_line += T(:extract_endif)
|
112
|
+
traversal.enter_user_include_line += T(:extract_usr_include)
|
113
|
+
traversal.enter_system_include_line += T(:extract_sys_include)
|
114
|
+
traversal.enter_object_like_define_line += T(:extract_define)
|
115
|
+
traversal.enter_function_like_define_line += T(:extract_define)
|
116
|
+
traversal.enter_va_function_like_define_line += T(:extract_define)
|
117
|
+
traversal.enter_undef_line += T(:extract_undef)
|
118
|
+
traversal.enter_line_line += T(:extract_line)
|
119
|
+
traversal.enter_error_line += T(:extract_error)
|
120
|
+
traversal.enter_pragma_line += T(:extract_pragma)
|
121
|
+
traversal.enter_null_directive += T(:extract_null)
|
122
122
|
end
|
123
123
|
|
124
124
|
private
|
@@ -153,12 +153,12 @@ module CBuiltin #:nodoc:
|
|
153
153
|
PP_DIRECTIVE(endif_line.location, endif_line.keyword.value, nil)
|
154
154
|
end
|
155
155
|
|
156
|
-
def
|
156
|
+
def extract_usr_include(usr_include_line)
|
157
157
|
PP_DIRECTIVE(usr_include_line.location, usr_include_line.keyword.value,
|
158
158
|
usr_include_line.header_name.value)
|
159
159
|
end
|
160
160
|
|
161
|
-
def
|
161
|
+
def extract_sys_include(sys_include_line)
|
162
162
|
PP_DIRECTIVE(sys_include_line.location, sys_include_line.keyword.value,
|
163
163
|
sys_include_line.header_name.value)
|
164
164
|
end
|