class AdLint::Exam::CBuiltin::W0079
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 1752 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_variable_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 1760 def check(node) return unless node.initializer && node.initializer.expression if node.type.array? && node.type.base_type.same_as?(char_t) if len = node.type.length finder = StringLiteralSpecifierFinder.new node.initializer.expression.accept(finder) if str_lit = finder.result str = unquote_string_literal(str_lit) W(node.location) if len <= str.length end end end end
interpreter()
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 1779 def interpreter @interp end
unquote_string_literal(str_lit)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 1775 def unquote_string_literal(str_lit) str_lit.literal.value.sub(/\AL?"(.*)"\z/, "\\1") end