diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index d283aaa..c859bc3 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -79,8 +79,6 @@ data GenOps = GenOps { genArraySize :: GenOps -> Bool -> CGen () -> A.Name -> CGen (), -- | Writes out the dimensions of an array, that can be used to initialise the sizes of an array. Fails if there is an 'A.UnknownDimension' present. genArraySizesLiteral :: GenOps -> A.Name -> A.Type -> CGen (), - -- | Writes out the size of the _sizes array, in square brackets. - genArraySizesSize :: GenOps -> [A.Dimension] -> CGen (), -- | Writes out the actual data storage array name. genArrayStoreName :: GenOps -> A.Name -> CGen(), -- | Generates an array subscript for the given variable (with error checking if the Bool is True), using the given expression list as subscripts @@ -185,7 +183,6 @@ cgenOps = GenOps { genArrayLiteralElems = cgenArrayLiteralElems, genArraySize = cgenArraySize, genArraySizesLiteral = cgenArraySizesLiteral, - genArraySizesSize = cgenArraySizesSize, genArrayStoreName = const genName, genArraySubscript = cgenArraySubscript, genAssert = cgenAssert, @@ -1198,9 +1195,7 @@ cgenDeclaration ops (A.Array ds t) n True tell [";"] tell ["int "] genName n - tell ["_sizes"] - call genArraySizesSize ops ds - tell [";"] + tell ["_sizes[",show $ length ds,"];"] cgenDeclaration ops t n _ = do call genType ops t tell [" "] @@ -1216,13 +1211,6 @@ cgenFlatArraySize ops ds [case d of A.Dimension n -> tell [show n] | d <- ds] tell ["]"] --- | Generate the size of the _sizes C array for an occam array. -cgenArraySizesSize :: GenOps -> [A.Dimension] -> CGen () -cgenArraySizesSize ops ds - = do tell ["["] - tell [show $ length ds] - tell ["]"] - -- | Declare an _sizes array for a variable. cdeclareArraySizes :: GenOps -> A.Type -> A.Name -> CGen () cdeclareArraySizes ops t name diff --git a/backends/GenerateCTest.hs b/backends/GenerateCTest.hs index c78e464..6361b38 100644 --- a/backends/GenerateCTest.hs +++ b/backends/GenerateCTest.hs @@ -256,7 +256,6 @@ testArraySizes = TestList testBoth "genArraySizesLiteral 0" "{3}" "tockArrayView(foo_actual,tockDims(3))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3] A.Int) ,testBoth "genArraySizesLiteral 1" "{3,6,8}" "tockArrayView(foo_actual,tockDims(3,6,8))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3, A.Dimension 6, A.Dimension 8] A.Int) ,testBothFail "genArraySizesLiteral 2" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 6, A.UnknownDimension] A.Int) - ,testBothSame "genArraySizesSize 0" "[1]" (tcall genArraySizesSize [A.Dimension 7]) ,testBothSame "genArraySize 0" "const int*foo_sizes=@;" (tcall3 genArraySize True at foo) ,testBothSame "genArraySize 1" "const int foo_sizes[]=@;" (tcall3 genArraySize False at foo) ,testBothSame "genArrayLiteralElems 0" "$" $ (tcall genArrayLiteralElems [A.ArrayElemExpr undefined]) . unfolded