class AdLint::Exam::CBuiltin::W0543
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 12509 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_ansi_function_definition += T(:check) @interp = phase_ctxt[:cc1_interpreter] end
Private Instance Methods
check(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 12517 def check(node) fun = function_named(node.identifier.value) return unless fun params = fun.declarations_and_definitions.map { |dcl_or_def| case dcl_or_def when Cc1::FunctionDeclaration extract_param_names(dcl_or_def.init_declarator) when Cc1::FunctionDefinition extract_param_names(dcl_or_def.declarator) end } if params.size > 1 params.first.zip(*params.drop(1)) do |names| unless names.tap { |ary| ary.delete("") }.uniq.size == 1 W(node.location) break end end end end
extract_param_names(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 12540 def extract_param_names(node) collect_identifier_declarators(node).map { |dcr| dcr.identifier.value } end
interpreter()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 12544 def interpreter @interp end