class AdLint::Cc1::ExtendedBigIntType

Public Class Methods

new(type_tbl) click to toggle source
Calls superclass method AdLint::Cc1::IntegerType::new
# File lib/adlint/cc1/type.rb, line 7094
def initialize(type_tbl)
  super(type_tbl, "__adlint__extended_bigint_t", 256, 256, true, true)
end

Public Instance Methods

arithmetic_type_with(type) click to toggle source
# File lib/adlint/cc1/type.rb, line 7172
def arithmetic_type_with(type)
  type._arithmetic_type_with_extended_big_int(self)
end
bitfield?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7122
def bitfield?
  false
end
corresponding_signed_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 7176
def corresponding_signed_type
  self
end
corresponding_unsigned_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 7180
def corresponding_unsigned_type
  self
end
dup() click to toggle source
# File lib/adlint/cc1/type.rb, line 7184
def dup
  ExtendedBigIntType.new(type_table)
end
enum?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7114
def enum?
  false
end
enumerators() click to toggle source
# File lib/adlint/cc1/type.rb, line 7126
def enumerators
  []
end
id() click to toggle source
# File lib/adlint/cc1/type.rb, line 7098
def id
  @id ||= TypeId.new(name)
end
incomplete?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7106
def incomplete?
  false
end
integer_conversion_rank() click to toggle source
# File lib/adlint/cc1/type.rb, line 7130
def integer_conversion_rank
  # NOTE: The ISO C99 standard says;
  #
  # 6.3.1 Arithmetic operands
  # 6.3.1.1 Boolean, characters, and integers
  #
  # 1 Every integer type has an integer conversion rank defined as follows:
  #
  #     -- No two signed integer types shall have the same rank, even if
  #        they have the same representation.
  #     -- The rank of a signed integer type shall be greater than the rank
  #        of any signed integer type with less precision.
  #     -- The rank of long long int shall be greater than the rank of long
  #        int, which shall be greater than the rank of int, which shall be
  #        greater than the rank of short int, which shall be greater than
  #        the rank of signed char.
  #     -- The rank of any unsigned integer type shall equal the rank of
  #        the corresponding signed integer type, if any.
  #     -- The rank of any standard integer type shall be greater than the
  #        rank of any extended integer type with the same width.
  #     -- The rank of char shall equal the rank of signed char and
  #        unsigned char.
  #     -- The rank of _Bool shall be less than the rank of all other
  #        standard integer types.
  #     -- The rank of any enumerated type shall equal the rank of the
  #        compatible integer type.
  #     -- The rank of any extended signed integer type relative to another
  #        extended signed integer type with the same precision is
  #        implementation-defined, but still subject to the other rules for
  #        determining the integer conversion rank.
  #     -- For all integer types T1, T2, and T3, if T1 has greater rank
  #        than T2 and T2 has greater rank than T3, then T1 has greater
  #        rank than T3.
  -2
end
integer_promoted_type() click to toggle source
# File lib/adlint/cc1/type.rb, line 7166
def integer_promoted_type
  # NOTE: ExtendedBigIntType is very big integer.
  #       So, it is not compatible with int or unsigned int.
  self
end
named?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7102
def named?
  true
end
pointer?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7110
def pointer?
  false
end
standard?() click to toggle source
# File lib/adlint/cc1/type.rb, line 7118
def standard?
  false
end