class AdLint::Exam::CBuiltin::W0827
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 20119 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_variable_definition += T(:enter_variable_definition) end
Private Instance Methods
check(type, init)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20141 def check(type, init) return unless init if inits = init.initializers case when type.array? check(type.base_type, inits.first) when type.struct? type.members.zip(inits).each { |m, i| i and check(m.type, i) } end else W(init.location) if type.struct? end end
enter_variable_definition(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20126 def enter_variable_definition(node) if outmost_init = node.initializer if inits = outmost_init.initializers case when node.type.array? check(node.type.base_type, inits.first) when node.type.struct? node.type.members.zip(inits).each do |memb, init| check(memb.type, init) if init end end end end end