From ed38f80db0b9aea3abdbe1670bd0dd35595fdeb5 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sat, 13 Oct 2007 15:38:04 +0000 Subject: [PATCH] Changed the type of genRetypeSizes to removed the unused AbbrevMode parameter --- backends/GenerateC.hs | 10 +++++----- backends/GenerateCPPCSP.hs | 2 +- backends/GenerateCTest.hs | 24 ++++++++++++------------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index 9a82f5a..3a147d9 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -136,7 +136,7 @@ data GenOps = GenOps { genReplicator :: GenOps -> A.Replicator -> CGen () -> CGen (), -- | Generates the three bits of a for loop (e.g. "int i=0;i<10;i++" for the given replicator genReplicatorLoop :: GenOps -> A.Replicator -> CGen (), - genRetypeSizes :: GenOps -> Meta -> A.AbbrevMode -> A.Type -> A.Name -> A.Type -> A.Variable -> CGen (), + genRetypeSizes :: GenOps -> Meta -> A.Type -> A.Name -> A.Type -> A.Variable -> CGen (), genSeq :: GenOps -> A.Structured -> CGen (), genSimpleDyadic :: GenOps -> String -> A.Expression -> A.Expression -> CGen (), genSimpleMonadic :: GenOps -> String -> A.Expression -> CGen (), @@ -1126,9 +1126,9 @@ abbrevVariable ops am t v = (call genVariableAM ops v am, noSize) -- | Generate the size part of a RETYPES\/RESHAPES abbrevation of a variable. -cgenRetypeSizes :: GenOps -> Meta -> A.AbbrevMode -> A.Type -> A.Name -> A.Type -> A.Variable -> CGen () -cgenRetypeSizes _ _ _ (A.Chan {}) _ (A.Chan {}) _ = return () -cgenRetypeSizes ops m am destT destN srcT srcV +cgenRetypeSizes :: GenOps -> Meta -> A.Type -> A.Name -> A.Type -> A.Variable -> CGen () +cgenRetypeSizes _ _ (A.Chan {}) _ (A.Chan {}) _ = return () +cgenRetypeSizes ops m destT destN srcT srcV = do size <- makeNonce "retype_size" tell ["int ", size, " = occam_check_retype ("] call genBytesIn ops srcT (Just srcV) False @@ -1400,7 +1400,7 @@ cintroduceSpec ops (A.Specification _ n (A.Retypes m am t v)) tell [")"] rhs tell [";"] - call genRetypeSizes ops m am t n origT v + call genRetypeSizes ops m t n origT v --cintroduceSpec ops (A.Specification _ n (A.RetypesExpr _ am t e)) cintroduceSpec ops n = call genMissing ops $ "introduceSpec " ++ show n diff --git a/backends/GenerateCPPCSP.hs b/backends/GenerateCPPCSP.hs index 98b9aa9..d3b822c 100644 --- a/backends/GenerateCPPCSP.hs +++ b/backends/GenerateCPPCSP.hs @@ -1029,7 +1029,7 @@ cppintroduceSpec ops (A.Specification _ n (A.Retypes m am t v)) (A.Array _ _) -> tell ["("] >> rhs >> tell [".data())"] _ -> rhs tell [";"] - call genRetypeSizes ops m am t n origT v + call genRetypeSizes ops m t n origT v --For all other cases, use the C implementation: cppintroduceSpec ops n = cintroduceSpec ops n diff --git a/backends/GenerateCTest.hs b/backends/GenerateCTest.hs index fdb03a9..126517a 100644 --- a/backends/GenerateCTest.hs +++ b/backends/GenerateCTest.hs @@ -201,8 +201,8 @@ override2 val = (\_ _ _ -> val) override3 :: b -> (GenOps -> a0 -> a1 -> a2 -> b) override3 val = (\_ _ _ _ -> val) -override6 :: b -> (GenOps -> a0 -> a1 -> a2 -> a3 -> a4 -> a5 -> b) -override6 val = (\_ _ _ _ _ _ _ -> val) +override5 :: b -> (GenOps -> a0 -> a1 -> a2 -> a3 -> a4 -> b) +override5 val = (\_ _ _ _ _ _ -> val) testGenType :: Test testGenType = TestList @@ -557,16 +557,16 @@ testSpec = TestList --Retypes: -- Normal abbreviation: ,testAllSameS 900 ("int*const foo=(int*const)&y;@","") (A.Retypes emptyMeta A.Abbrev A.Int (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) -- Val abbreviation: ,testAllSameS 901 ("const int foo=*(const int*)&y;@","") (A.Retypes emptyMeta A.ValAbbrev A.Int (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) --Abbreviations of records as records: ,testAllSameS 910 ("bar*const foo=(bar*const)(&y);@","") (A.Retypes emptyMeta A.Abbrev (A.Record bar) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" (A.Record bar2))) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" (A.Record bar2))) (\ops -> ops {genRetypeSizes = override5 at}) -- Val abbreviation of records as records: ,testAllSameS 911 ("const bar*const foo=(const bar*const)(&y);@","") (A.Retypes emptyMeta A.ValAbbrev (A.Record bar) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" (A.Record bar2))) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" (A.Record bar2))) (\ops -> ops {genRetypeSizes = override5 at}) -- Channel retyping doesn't require size checking: ,testAllS 1000 ("Channel*const foo=(Channel*const)(&y);","") ("csp::One2OneChannel*const foo=(csp::One2OneChannel*const)(&y);","") @@ -577,28 +577,28 @@ testSpec = TestList -- single (unknown) dimension: ,testAllS 1100 ("uint8_t* foo=(uint8_t*)&y;@","") ("tockArrayView foo=tockArrayView(tockDims(0),&y);@","") (A.Retypes emptyMeta A.Abbrev (A.Array [A.UnknownDimension] A.Byte) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) -- single (known) dimension: ,testAllS 1101 ("uint8_t* foo=(uint8_t*)&y;@","") ("tockArrayView foo=tockArrayView(tockDims(4),&y);@","") (A.Retypes emptyMeta A.Abbrev (A.Array [A.Dimension 4] A.Byte) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) -- single (unknown) dimension, VAL: ,testAllS 1102 ("const uint8_t* foo=(const uint8_t*)&y;@","") ("tockArrayView foo=tockArrayView(tockDims(0),&y);@","") (A.Retypes emptyMeta A.ValAbbrev (A.Array [A.UnknownDimension] A.Byte) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) -- single (known) dimension, VAL: ,testAllS 1103 ("const uint8_t* foo=(const uint8_t*)&y;@","") ("tockArrayView foo=tockArrayView(tockDims(4),&y);@","") (A.Retypes emptyMeta A.ValAbbrev (A.Array [A.Dimension 4] A.Byte) (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" A.Int32)) (\ops -> ops {genRetypeSizes = override5 at}) -- TODO test multiple dimensions plain-to-array (mainly for C++) -- Array-to-plain retyping: ,testAllS 1200 ("int32_t*const foo=(int32_t*const)y;@","") ("int32_t*const foo=(int32_t*const)(y.data());@","") (A.Retypes emptyMeta A.Abbrev A.Int32 (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" (A.Array [A.UnknownDimension] A.Byte))) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" (A.Array [A.UnknownDimension] A.Byte))) (\ops -> ops {genRetypeSizes = override5 at}) ,testAllS 1201 ("const int32_t foo=*(const int32_t*)y;@","") ("const int32_t foo=*(const int32_t*)(y.data());@","") (A.Retypes emptyMeta A.ValAbbrev A.Int32 (variable "y")) - (defineName (simpleName "y") (simpleDefDecl "y" (A.Array [A.UnknownDimension] A.Byte))) (\ops -> ops {genRetypeSizes = override6 at}) + (defineName (simpleName "y") (simpleDefDecl "y" (A.Array [A.UnknownDimension] A.Byte))) (\ops -> ops {genRetypeSizes = override5 at}) --TODO test array-to-array retyping