Made sure that timer variables are always considered read-only when passed around

This fixes a usage checking problem in cgtest08 where the variable would be considered written-to in parallel because it was passed twice in parallel (and not marked as a VAL abbrev)
This commit is contained in:
Neil Brown 2009-01-17 16:25:08 +00:00
parent 6f22d8a573
commit d9cfa9135d

View File

@ -161,9 +161,10 @@ getVarProcCall (A.ProcCall _ proc as)
getVarActual :: (Die m, CSMR m) => A.Formal -> A.Actual -> m Vars
getVarActual _ (A.ActualExpression e) = return $ getVarExp e
getVarActual (A.Formal am _ _) (A.ActualVariable v)
= case am of
A.ValAbbrev -> return $ processVarR v
getVarActual (A.Formal am t _) (A.ActualVariable v)
= case (am, t) of
(A.ValAbbrev,_) -> return $ processVarR v
(_,A.Timer {}) -> return $ processVarR v
_ -> return $ processVarW v Nothing
{-