class AdLint::Exam::CBuiltin::W0041

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 1042
def initialize(phase_ctxt)
  super
  trav = phase_ctxt[:cc1_ast_traversal]
  trav.enter_struct_type_declaration += T(:check_struct)
  trav.enter_union_type_declaration  += T(:check_union)
end

Private Instance Methods

check_struct(node) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 1050
def check_struct(node)
  memb_num = node.struct_declarations.map { |dcl|
    dcl.items.size
  }.reduce(0) { |sum, num| sum + num }

  W(node.location) if memb_num > 127
end
check_union(node) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 1058
def check_union(node)
  memb_num = node.struct_declarations.map { |dcl|
    dcl.items.size
  }.reduce(0) { |sum, num| sum + num }

  W(node.location) if memb_num > 127
end