diff options
Diffstat (limited to 'mu.arc.t')
-rw-r--r-- | mu.arc.t | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mu.arc.t b/mu.arc.t index 1661ca71..ce879c32 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -511,6 +511,24 @@ (prn "F - 'get' accesses fields of record address")) (reset) +(new-trace "get-indirect-repeated") +(add-code + '((def main [ + ((1 integer) <- copy (34 literal)) + ((2 integer) <- copy (35 literal)) + ((3 integer) <- copy (36 literal)) + ((4 integer-point-pair-address) <- copy (1 literal)) ; unsafe + ((5 integer-point-pair-address-address) <- copy (4 literal)) ; unsafe + ((6 integer-integer-pair) <- get (5 integer-point-pair-address-address deref deref) (1 offset)) + ((8 integer) <- get (5 integer-point-pair-address-address deref deref) (0 offset)) + ]))) +(run 'main) +(if (or (~is memory*.6 35) + (~is memory*.7 36) + (~is memory*.8 34)) + (prn "F - 'get' can deref multiple times")) + +(reset) (new-trace "get-compound-field") (add-code '((def main [ |