class AdLint::Exam::CBuiltin::W0031
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 662 def initialize(phase_ctxt) super interp = phase_ctxt[:cc1_interpreter] interp.on_function_started += T(:start_function) interp.on_parameter_defined += T(:add_parameter) interp.on_variable_referred += T(:use_parameter) interp.on_variable_value_referred += T(:use_parameter) interp.on_function_ended += T(:check_unused_parameter) @parameters = nil end
Private Instance Methods
add_parameter(param_def, var)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 678 def add_parameter(param_def, var) if @parameters && var.named? @parameters[var.name] = [param_def, false] end end
check_unused_parameter(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 692 def check_unused_parameter(*) if @parameters @parameters.each do |name, param| W(param[0].location, name) unless param[1] end @parameters = nil end end
start_function(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 674 def start_function(*) @parameters = {} end
use_parameter(*, var)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 684 def use_parameter(*, var) if @parameters && var.named? if param_def = @parameters[var.name] @parameters[var.name] = [param_def, true] end end end