class AdLint::Exam::CBuiltin::W0572
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 13312 def initialize(phase_ctxt) super interp = phase_ctxt[:cc1_interpreter] interp.on_shift_expr_evaled += T(:check_shift) interp.on_and_expr_evaled += T(:check_binary) interp.on_inclusive_or_expr_evaled += T(:check_binary) interp.on_exclusive_or_expr_evaled += T(:check_binary) interp.on_unary_arithmetic_expr_evaled += T(:check_unary) end
Private Instance Methods
check_binary(expr, lhs_var, rhs_var, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 13329 def check_binary(expr, lhs_var, rhs_var, *) if lhs_var.type.scalar? && lhs_var.type.signed? W(expr.location) return end if rhs_var.type.scalar? && rhs_var.type.signed? W(expr.location) return end end
check_shift(expr, lhs_var, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 13323 def check_shift(expr, lhs_var, *) if lhs_var.type.scalar? && lhs_var.type.signed? W(expr.location) end end
check_unary(expr, var, *)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 13341 def check_unary(expr, var, *) return unless expr.operator.type == "~" if var.type.scalar? && var.type.signed? W(expr.location) end end