class AdLint::Exam::CBuiltin::W0039
Public Class Methods
new(phase_ctxt)
click to toggle source
Calls superclass method
AdLint::Examination::new
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 980 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_compound_statement += T(:enter_block) trav.leave_compound_statement += T(:leave_block) trav.enter_variable_definition += T(:add_identifier) trav.enter_variable_declaration += T(:add_identifier) trav.enter_typedef_declaration += T(:add_identifier) @block_stack = [0] end
Private Instance Methods
add_identifier(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 1000 def add_identifier(node) @block_stack[-1] += 1 W(node.location) if @block_stack.last == 128 end
enter_block(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 992 def enter_block(node) @block_stack.push(0) end
leave_block(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 996 def leave_block(node) @block_stack.pop end