1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-11-22 17:32:01 +00:00

In fact the 'src' should never (I think?) be 'touched'.

This commit is contained in:
Chris Pressey 2018-02-05 12:08:33 +00:00
parent 7dfd2cfe0c
commit 11d6c08369

View File

@ -141,9 +141,6 @@ class Context(object):
def set_touched(self, *refs): def set_touched(self, *refs):
for ref in refs: for ref in refs:
# FIXME review the whole "touched" thing. what does it even mean? how is it different from "written"?
if isinstance(ref.type, RoutineType):
continue
self._touched.add(ref) self._touched.add(ref)
def set_meaningful(self, *refs): def set_meaningful(self, *refs):
@ -403,19 +400,16 @@ class Analyzer(object):
elif isinstance(src, IndirectRef) and isinstance(dest, LocationRef): elif isinstance(src, IndirectRef) and isinstance(dest, LocationRef):
context.assert_meaningful(src.ref, REG_Y) context.assert_meaningful(src.ref, REG_Y)
# TODO this will need to be more sophisticated. the thing ref points to is touched, as well. # TODO this will need to be more sophisticated. the thing ref points to is touched, as well.
context.set_touched(src.ref) # TODO and REG_Y? if not, why not?
context.set_touched(dest)
context.set_written(dest) context.set_written(dest)
elif isinstance(src, LocationRef) and isinstance(dest, IndexedRef): elif isinstance(src, LocationRef) and isinstance(dest, IndexedRef):
context.assert_meaningful(src, dest.ref, dest.index) context.assert_meaningful(src, dest.ref, dest.index)
context.set_touched(src) # TODO and dest.index?
context.set_written(dest.ref) context.set_written(dest.ref)
elif isinstance(src, ConstantRef) and isinstance(dest, IndexedRef): elif isinstance(src, ConstantRef) and isinstance(dest, IndexedRef):
context.assert_meaningful(src, dest.ref, dest.index) context.assert_meaningful(src, dest.ref, dest.index)
context.set_written(dest.ref) context.set_written(dest.ref)
elif isinstance(src, IndexedRef) and isinstance(dest, LocationRef): elif isinstance(src, IndexedRef) and isinstance(dest, LocationRef):
context.assert_meaningful(src.ref, src.index, dest) context.assert_meaningful(src.ref, src.index, dest)
context.set_touched(dest) # TODO and src.index? context.set_touched(dest)
context.set_written(dest) context.set_written(dest)
else: else:
context.assert_meaningful(src) context.assert_meaningful(src)