class AdLint::Cc1::TypedObject
Attributes
type[R]
Public Class Methods
new(type, dcl_or_def = nil)
click to toggle source
Calls superclass method
AdLint::Cc1::Object::new
# File lib/adlint/cc1/object.rb, line 163 def initialize(type, dcl_or_def = nil) super(dcl_or_def) @type = type end
Public Instance Methods
to_pointer(interp_bridge)
click to toggle source
# File lib/adlint/cc1/object.rb, line 178 def to_pointer(interp_bridge) if @type.array? ptr_type = @type.type_table.pointer_type(@type.base_type) else ptr_type = @type.type_table.pointer_type(@type) end interp_bridge[:create_tmpvar][ptr_type, to_pointer_value(interp_bridge)] end
to_pointer_value(interp_bridge)
click to toggle source
# File lib/adlint/cc1/object.rb, line 195 def to_pointer_value(interp_bridge) interp_bridge[:scalar_value_of][binding.memory.address] end
to_value(interp_bridge)
click to toggle source
# File lib/adlint/cc1/object.rb, line 187 def to_value(interp_bridge) if @type.array? || @type.function? to_pointer_value(interp_bridge) else value.to_single_value end end
to_variable(interp_bridge)
click to toggle source
# File lib/adlint/cc1/object.rb, line 170 def to_variable(interp_bridge) if function? or variable? && @type.array? to_pointer(interp_bridge) else self end end