class AdLint::Cc1::CompositeDataType

DESCRIPTION

Type of the ‘struct’ or ‘union’ data type.

The ISO C99 standard specifies that the ‘struct’ and array data type is an aggregate type. But the CompositeDataType is not an array type.

Attributes

members[R]

Public Class Methods

new(type_tbl, name, type_dcls, membs) click to toggle source
Calls superclass method AdLint::Cc1::Type::new
# File lib/adlint/cc1/type.rb, line 6139
def initialize(type_tbl, name, type_dcls, membs)
  super(type_tbl, name, type_dcls)
  @members = membs
end

Public Instance Methods

_arithmetic_type_with_array(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6657
def _arithmetic_type_with_array(lhs_type, rhs_type = self)
  rhs_type.arithmetic_type_with(lhs_type)
end
_arithmetic_type_with_bitfield(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6633
def _arithmetic_type_with_bitfield(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with BitfieldType and CompositeDataType makes
  #       integer-promoted type of BitfieldType.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_char(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6403
def _arithmetic_type_with_char(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `char' and CompositeDataType makes
  #       integer-promoted type of `char'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_double(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6617
def _arithmetic_type_with_double(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `double' and CompositeDataType makes
  #       `double'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_enum(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6641
def _arithmetic_type_with_enum(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with EnumType and CompositeDataType makes
  #       EnumType.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_extended_big_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6673
def _arithmetic_type_with_extended_big_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with ExtendedBigIntType and CompositeDataType
  #       makes ExtendedBigIntType.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_float(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6609
def _arithmetic_type_with_float(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `float' and CompositeDataType makes
  #       `float'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_function(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6399
def _arithmetic_type_with_function(lhs_type, rhs_type = self)
  rhs_type.arithmetic_type_with(lhs_type)
end
_arithmetic_type_with_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6475
def _arithmetic_type_with_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `int' and CompositeDataType makes `int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6514
def _arithmetic_type_with_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `long' and CompositeDataType makes `long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_long_double(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6625
def _arithmetic_type_with_long_double(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `long double' and CompositeDataType makes
  #       `long double'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6537
def _arithmetic_type_with_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `long int' and CompositeDataType makes
  #       `long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_long_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6561
def _arithmetic_type_with_long_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `long long' and CompositeDataType makes
  #       `long long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_long_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6585
def _arithmetic_type_with_long_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `long long int' and CompositeDataType makes
  #       `long long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_pointer(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6649
def _arithmetic_type_with_pointer(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with PointerType and CompositeDataType makes
  #       PointerType.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_short(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6427
def _arithmetic_type_with_short(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `short' and CompositeDataType makes
  #       integer-promoted type of `short'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_short_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6451
def _arithmetic_type_with_short_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `short int' and CompositeDataType makes
  #       integer-promoted type of `short int'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_signed(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6482
def _arithmetic_type_with_signed(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed' and CompositeDataType makes
  #       `signed'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_char(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6411
def _arithmetic_type_with_signed_char(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed char' and CompositeDataType makes
  #       integer-promoted type of `signed char'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_signed_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6490
def _arithmetic_type_with_signed_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed int' and CompositeDataType makes
  #       `signed int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6521
def _arithmetic_type_with_signed_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed long' and CompositeDataType makes
  #       `signed long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6545
def _arithmetic_type_with_signed_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed long int' and CompositeDataType
  #       makes `signed long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_long_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6569
def _arithmetic_type_with_signed_long_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed long long' and CompositeDataType
  #       makes `signed long long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_long_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6593
def _arithmetic_type_with_signed_long_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed long long int' and
  #       CompositeDataType makes `signed long long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_signed_short(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6435
def _arithmetic_type_with_signed_short(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed short' and CompositeDataType makes
  #       integer-promoted type of `signed short'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_signed_short_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6459
def _arithmetic_type_with_signed_short_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `signed short int' and CompositeDataType
  #       makes integer-promoted type of `signed short int'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_struct(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6661
def _arithmetic_type_with_struct(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  lhs_type # NOTREACHED
end
_arithmetic_type_with_undeclared(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6387
def _arithmetic_type_with_undeclared(lhs_type, rhs_type = self)
  rhs_type.arithmetic_type_with(lhs_type)
end
_arithmetic_type_with_union(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6667
def _arithmetic_type_with_union(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unresolved(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6391
def _arithmetic_type_with_unresolved(lhs_type, rhs_type = self)
  rhs_type.arithmetic_type_with(lhs_type)
end
_arithmetic_type_with_unsigned(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6498
def _arithmetic_type_with_unsigned(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned' and CompositeDataType makes
  #       `unsigned'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_char(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6419
def _arithmetic_type_with_unsigned_char(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned char' and CompositeDataType makes
  #       integer-promoted type of `unsigned char'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_unsigned_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6506
def _arithmetic_type_with_unsigned_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned int' and CompositeDataType makes
  #       `unsigned int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6529
def _arithmetic_type_with_unsigned_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned long' and CompositeDataType makes
  #       `unsigned long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6553
def _arithmetic_type_with_unsigned_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned long int' and CompositeDataType
  #       makes `unsigned long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_long_long(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6577
def _arithmetic_type_with_unsigned_long_long(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned long long' and CompositeDataType
  #       makes `unsigned long long'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_long_long_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6601
def _arithmetic_type_with_unsigned_long_long_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned long long int' and
  #       CompositeDataType makes `unsigned long long int'.
  lhs_type # NOTREACHED
end
_arithmetic_type_with_unsigned_short(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6443
def _arithmetic_type_with_unsigned_short(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned short' and CompositeDataType
  #       makes integer-promoted type of `unsigned short'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_unsigned_short_int(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6467
def _arithmetic_type_with_unsigned_short_int(lhs_type, rhs_type = self)
  # NOTE: An arithmetic operation with CompositeDataType must not be
  #       executed!
  # NOTE: Binary operation with `unsigned short int' and CompositeDataType
  #       makes integer-promoted type of `unsigned short int'.
  lhs_type.integer_promoted_type # NOTREACHED
end
_arithmetic_type_with_void(lhs_type, rhs_type = self) click to toggle source
# File lib/adlint/cc1/type.rb, line 6395
def _arithmetic_type_with_void(lhs_type, rhs_type = self)
  rhs_type.arithmetic_type_with(lhs_type)
end
aligned_bit_size() click to toggle source
# File lib/adlint/cc1/type.rb, line 6174
def aligned_bit_size
  @members.reduce(0) { |sum, memb| sum + memb.type.aligned_bit_size }
end
arbitrary_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6338
def arbitrary_value
  CompositeValue.new(@members.map { |memb| memb.type.arbitrary_value })
end
argument_promoted_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6379
def argument_promoted_type
  self
end
arithmetic_type_with(type) click to toggle source
# File lib/adlint/cc1/type.rb, line 6383
def arithmetic_type_with(type)
  subclass_responsibility
end
array?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6219
def array?
  false
end
base_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6182
def base_type
  nil
end
bit_alignment() click to toggle source
# File lib/adlint/cc1/type.rb, line 6170
def bit_alignment
  bit_size
end
bit_size() click to toggle source
# File lib/adlint/cc1/type.rb, line 6166
def bit_size
  @members.reduce(0) { |sum, memb| sum + memb.type.bit_size }
end
bitfield?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6271
def bitfield?
  false
end
brief_image() click to toggle source
# File lib/adlint/cc1/type.rb, line 6154
def brief_image
  subclass_responsibility
end
coerce_array_value(val) click to toggle source
# File lib/adlint/cc1/type.rb, line 6359
def coerce_array_value(val)
  # NOTE: Cannot coerce array value into composite in C language.
  undefined_value # NOTREACHED
end
coerce_composite_value(val) click to toggle source
# File lib/adlint/cc1/type.rb, line 6364
def coerce_composite_value(val)
  vals = @members.zip(val.values).map { |memb, v|
    v ? v.coerce_to(memb.type) : memb.type.undefined_value
  }
  CompositeValue.new(vals)
end
coerce_scalar_value(val) click to toggle source
# File lib/adlint/cc1/type.rb, line 6354
def coerce_scalar_value(val)
  # NOTE: Cannot coerce scalar value into composite in C language.
  undefined_value # NOTREACHED
end
coercible?(to_type) click to toggle source
# File lib/adlint/cc1/type.rb, line 6200
def coercible?(to_type)
  to_type.composite? &&
    @members.zip(to_type.members).all? { |lhs_memb, rhs_memb|
      rhs_memb && lhs_memb.type.coercible?(rhs_memb.type)
    }
end
compatible?(to_type) click to toggle source
# File lib/adlint/cc1/type.rb, line 6194
def compatible?(to_type)
  to_type.composite? &&
    @members.size == to_type.members.size &&
    @members.zip(to_type.members).all? { |lhs, rhs| lhs.compatible?(rhs) }
end
const?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6259
def const?
  false
end
corresponding_signed_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6681
def corresponding_signed_type
  self # NOTREACHED
end
corresponding_unsigned_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6685
def corresponding_unsigned_type
  self # NOTREACHED
end
dup() click to toggle source
# File lib/adlint/cc1/type.rb, line 6689
def dup
  self.class.new(type_table, declarations.first,
                 @members.map { |memb| memb.dup })
end
enum?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6235
def enum?
  false
end
enumerators() click to toggle source
# File lib/adlint/cc1/type.rb, line 6295
def enumerators
  []
end
explicitly_signed?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6279
def explicitly_signed?
  false
end
floating?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6215
def floating?
  false
end
function?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6231
def function?
  false
end
have_va_list?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6283
def have_va_list?
  false
end
id() click to toggle source
# File lib/adlint/cc1/type.rb, line 6146
def id
  subclass_responsibility
end
image() click to toggle source
# File lib/adlint/cc1/type.rb, line 6150
def image
  subclass_responsibility
end
impl_length() click to toggle source
# File lib/adlint/cc1/type.rb, line 6303
def impl_length
  0
end
incomplete?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6190
def incomplete?
  declarations.all? { |dcl| dcl.struct_declarations.nil? }
end
integer?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6211
def integer?
  false
end
integer_conversion_rank() click to toggle source
# File lib/adlint/cc1/type.rb, line 6371
def integer_conversion_rank
  0 # NOTREACHED
end
integer_promoted_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6375
def integer_promoted_type
  self # NOTREACHED
end
length() click to toggle source
# File lib/adlint/cc1/type.rb, line 6299
def length
  0
end
location() click to toggle source
# File lib/adlint/cc1/type.rb, line 6158
def location
  subclass_responsibility
end
max() click to toggle source
# File lib/adlint/cc1/type.rb, line 6326
def max
  0
end
member_named(name) click to toggle source
# File lib/adlint/cc1/type.rb, line 6307
def member_named(name)
  # FIXME: Should use the member name index.
  @members.each do |memb|
    case
    when memb.name.nil? && memb.type.composite?
      if inner_memb = memb.type.member_named(name)
        return inner_memb
      end
    when memb.name == name
      return memb
    end
  end
  nil
end
min() click to toggle source
# File lib/adlint/cc1/type.rb, line 6322
def min
  0
end
named?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6162
def named?
  subclass_responsibility
end
nil_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6330
def nil_value
  CompositeValue.new(@members.map { |memb| memb.type.nil_value })
end
parameter_types() click to toggle source
# File lib/adlint/cc1/type.rb, line 6291
def parameter_types
  []
end
parameter_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6346
def parameter_value
  CompositeValue.new(@members.map { |memb| memb.type.parameter_value })
end
pointer?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6223
def pointer?
  false
end
qualified?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6227
def qualified?
  false
end
real_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6178
def real_type
  self
end
restrict?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6267
def restrict?
  false
end
return_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 6287
def return_type
  nil
end
return_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6350
def return_value
  CompositeValue.new(@members.map { |memb| memb.type.return_value })
end
scalar?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6207
def scalar?
  false
end
signed?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6275
def signed?
  false
end
standard?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6247
def standard?
  false
end
undeclared?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6251
def undeclared?
  @members.any? { |memb| memb.type.undeclared? }
end
undefined_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6342
def undefined_value
  CompositeValue.new(@members.map { |memb| memb.type.undefined_value })
end
unqualify() click to toggle source
# File lib/adlint/cc1/type.rb, line 6186
def unqualify
  self
end
unresolved?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6255
def unresolved?
  @members.any? { |memb| memb.type.unresolved? }
end
user?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6239
def user?
  false
end
void?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6243
def void?
  false
end
volatile?() click to toggle source
# File lib/adlint/cc1/type.rb, line 6263
def volatile?
  false
end
zero_value() click to toggle source
# File lib/adlint/cc1/type.rb, line 6334
def zero_value
  CompositeValue.new(@members.map { |memb| memb.type.zero_value })
end