class AdLint::Exam::CBuiltin::W0686

Public Instance Methods

check(funcall_expr, fun, arg_vars, *) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 16004
def check(funcall_expr, fun, arg_vars, *)
  if fun.named? && fun.name =~ /\A.*scanf\z/
    fmt = create_format(funcall_expr, format_str_index_of(funcall_expr),
                        arg_vars, @environ)
    return unless fmt

    fmt.conversion_specifiers.each do |conv_spec|
      if conv_spec.scanset
        W(fmt.location) unless conv_spec.valid_scanset?
      end
    end
  end
end