class AdLint::Exam::CBuiltin::W0809
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 19991 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_function_declaration += T(:check_function_name) trav.enter_variable_declaration += T(:check_variable_name) trav.enter_variable_definition += T(:check_variable_name) trav.enter_parameter_definition += T(:check_variable_name) trav.enter_typedef_declaration += T(:check_typedef_name) trav.enter_struct_type_declaration += T(:check_tag_name) trav.enter_union_type_declaration += T(:check_tag_name) trav.enter_enum_type_declaration += T(:check_tag_name) trav.enter_enumerator += T(:check_enumerator_name) trav.enter_kandr_function_definition += T(:enter_function) trav.enter_ansi_function_definition += T(:enter_function) trav.leave_kandr_function_definition += T(:leave_function) trav.leave_ansi_function_definition += T(:leave_function) @fun_def_level = 0 end
Private Instance Methods
check_enumerator_name(enum)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20039 def check_enumerator_name(enum) if enum.identifier case name = enum.identifier.value when /\A__/, /\A_[A-Z]/, /\A_/ W(enum.location, name) end end end
check_filelocal_object_name(name, dcl_or_def)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20068 def check_filelocal_object_name(name, dcl_or_def) if @fun_def_level == 0 if sc_spec = dcl_or_def.storage_class_specifier if sc_spec.type == :STATIC W(dcl_or_def.location, name) end end end end
check_function_name(fun_dcl)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20011 def check_function_name(fun_dcl) check_object_name(fun_dcl) end
check_object_name(dcl_or_def)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20057 def check_object_name(dcl_or_def) if dcl_or_def.identifier case name = dcl_or_def.identifier.value when /\A__/, /\A_[A-Z]/ W(dcl_or_def.location, name) when /\A_/ check_filelocal_object_name(name, dcl_or_def) end end end
check_tag_name(type_dcl)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20028 def check_tag_name(type_dcl) if type_dcl.identifier case name = type_dcl.identifier.value when /\A__adlint/ # NOTE: To ignore AdLint internal tag names. when /\A__/, /\A_[A-Z]/, /\A_/ W(type_dcl.location, name) end end end
check_typedef_name(typedef_dcl)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20019 def check_typedef_name(typedef_dcl) if typedef_dcl.identifier case name = typedef_dcl.identifier.value when /\A__/, /\A_[A-Z]/, /\A_/ W(typedef_dcl.location, name) end end end
check_variable_name(var_dcl_or_def)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20015 def check_variable_name(var_dcl_or_def) check_object_name(var_dcl_or_def) end
enter_function(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20048 def enter_function(node) check_object_name(node) @fun_def_level += 1 end
leave_function(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20053 def leave_function(node) @fun_def_level -= 1 end