class AdLint::Cc1::Memory

Attributes

address[R]
byte_size[R]

Public Class Methods

new(addr, byte_size) click to toggle source
# File lib/adlint/cc1/object.rb, line 1167
def initialize(addr, byte_size)
  @address   = addr
  @byte_size = byte_size
  @value     = nil
end

Public Instance Methods

_cascade_update(src, br) click to toggle source
# File lib/adlint/cc1/object.rb, line 1196
def _cascade_update(src, br)
  # NOTE: This method will be called only from # #narrow_value_domain! and
  #       #widen_value_domain! of Variable to propagate memory mutation to
  #       the upper MemoryBlock from MemoryWindow.
end
dynamic?() click to toggle source
# File lib/adlint/cc1/object.rb, line 1180
def dynamic?
  subclass_responsibility
end
read() click to toggle source
# File lib/adlint/cc1/object.rb, line 1184
def read
  @value
end
static?() click to toggle source
# File lib/adlint/cc1/object.rb, line 1176
def static?
  subclass_responsibility
end
write(val, src, br) click to toggle source
# File lib/adlint/cc1/object.rb, line 1188
def write(val, src, br)
  if @value
    @value.overwrite!(val, TransitionTag.new([src], [br]))
  else
    @value = VersionedValue.new(val, TransitionTag.new([src], [br]))
  end
end