From 48b107b099e7faaee7e245cf80cb4a562edf24c9 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 9 Feb 2009 10:30:44 +0000 Subject: [PATCH] Made sure that channels are usage checked (by counting them as written variables) --- checks/ArrayUsageCheck.hs | 3 ++- checks/Check.hs | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/checks/ArrayUsageCheck.hs b/checks/ArrayUsageCheck.hs index 0a2fe59..6ba35c9 100644 --- a/checks/ArrayUsageCheck.hs +++ b/checks/ArrayUsageCheck.hs @@ -110,7 +110,8 @@ checkArrayUsage (m,p) = mapM_ (checkIndexes m) $ Map.toList $ -- Returns (array name, list of written-to indexes, list of read-from indexes) groupArrayIndexes :: ParItems (BK, Vars) -> Map.Map String (ParItems (BK, [A.Expression], [A.Expression])) groupArrayIndexes = filterByKey . fmap - (\(bk,vs) -> zipMap (join bk) (makeList $ Map.keysSet $ writtenVars vs) (makeList $ readVars vs)) + (\(bk,vs) -> zipMap (join bk) (makeList $ (Map.keysSet $ writtenVars vs) + `Set.union` (usedVars vs)) (makeList $ readVars vs)) where join :: b -> Maybe [a] -> Maybe [a] -> Maybe (b, [a],[a]) join k x y = Just (k, fromMaybe [] x, fromMaybe [] y) diff --git a/checks/Check.hs b/checks/Check.hs index a197c9d..8b63b10 100644 --- a/checks/Check.hs +++ b/checks/Check.hs @@ -211,7 +211,9 @@ checkPlainVarUsage (m, p) = check p where addBK :: BK -> Vars -> VarsBK addBK bk vs = VarsBK (Map.fromAscList $ zip (Set.toAscList $ readVars vs) (repeat bk)) - (Map.map (\me -> (maybeToList me, bk)) $ writtenVars vs) + ((Map.map (\me -> (maybeToList me, bk)) $ writtenVars vs) + `Map.union` Map.fromAscList (zip (Set.toAscList $ usedVars + vs) (repeat ([], bk)))) reps (RepParItem r p) = r : reps p reps (SeqItems _) = []