class AdLint::Exam::CBuiltin::W0799
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 19906 def initialize(phase_ctxt) super interp = phase_ctxt[:cc1_interpreter] interp.on_indirection_expr_evaled += T(:check_indirection) interp.on_member_access_expr_evaled += T(:check_member_access) interp.on_array_subscript_expr_evaled += T(:check_array_subscript) end
Private Instance Methods
check_array_subscript(expr, ary_or_ptr, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 19933 def check_array_subscript(expr, ary_or_ptr, *) if ary_or_ptr.type.pointer? base_type = ary_or_ptr.type.unqualify.base_type if base_type.struct? && base_type.incomplete? W(expr.location) end end end
check_indirection(expr, var, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 19915 def check_indirection(expr, var, *) if var.type.pointer? base_type = var.type.unqualify.base_type if base_type.struct? && base_type.incomplete? W(expr.location) end end end
check_member_access(expr, outer_var, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 19924 def check_member_access(expr, outer_var, *) if outer_var.type.pointer? base_type = outer_var.type.unqualify.base_type if base_type.struct? && base_type.incomplete? W(expr.location) end end end