From 9614d5f7f90dcf6f1049a6e2fc7ff353875d7b12 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Fri, 27 Feb 2009 17:13:18 +0000 Subject: [PATCH] Fixed the intrinsic PROCs to be generated correctly --- backends/GenerateC.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index ebf0a2e..7143f4d 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -1831,7 +1831,12 @@ cgenProcCall n as cgenIntrinsicProc :: Meta -> String -> [A.Actual] -> CGen () cgenIntrinsicProc m "ASSERT" [A.ActualExpression e] = call genAssert m e cgenIntrinsicProc _ "RESCHEDULE" [] = call genReschedule -cgenIntrinsicProc _ s _ = call genMissing $ "intrinsic PROC " ++ s +cgenIntrinsicProc m s as = case lookup s intrinsicProcs of + Just amtns -> do tell ["occam_", s, "("] + seqComma [call genActual (A.Formal am t (A.Name emptyMeta n)) a + | ((am, t, n), a) <- zip amtns as] + tell [");"] + Nothing -> call genMissing $ "intrinsic PROC " ++ s cgenReschedule :: CGen () cgenReschedule = tell ["Reschedule (wptr);"]