class AdLint::Exam::CBuiltin::W0605
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 14092 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_break_statement += T(:check) trav.enter_switch_statement += T(:enter_breakable_statement) trav.leave_switch_statement += T(:leave_breakable_statement) trav.enter_while_statement += T(:enter_breakable_statement) trav.leave_while_statement += T(:leave_breakable_statement) trav.enter_do_statement += T(:enter_breakable_statement) trav.leave_do_statement += T(:leave_breakable_statement) trav.enter_for_statement += T(:enter_breakable_statement) trav.leave_for_statement += T(:leave_breakable_statement) trav.enter_c99_for_statement += T(:enter_breakable_statement) trav.leave_c99_for_statement += T(:leave_breakable_statement) @breakable_stmts = [] end
Private Instance Methods
check(break_stmt)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 14110 def check(break_stmt) @breakable_stmts.last[1] += 1 if @breakable_stmts.last[1] > 1 && @breakable_stmts.last[0].kind_of?(Cc1::IterationStatement) W(break_stmt.location) end end
enter_breakable_statement(stmt)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 14119 def enter_breakable_statement(stmt) @breakable_stmts.push([stmt, 0]) end
leave_breakable_statement(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 14123 def leave_breakable_statement(*) @breakable_stmts.pop end