Added functions to the list of things that need stack sizes, even if they are external

I think this is not quite right, but for now it fixes stack sizes not being generated for any non-inlined standard operators.
This commit is contained in:
Neil Brown 2009-04-07 15:42:37 +00:00
parent 6e4e9c1808
commit 7bd4e3d309

View File

@ -162,12 +162,17 @@ generateC = generate cgenOps
needStackSizes :: (CSMR m, Die m) => m [A.Name]
needStackSizes
= do cs <- getCompState
return $ nub $ ([A.Name emptyMeta $ nameString $ A.Name emptyMeta n
return $ nub $(([A.Name emptyMeta $ nameString $ A.Name emptyMeta n
| A.NameDef {A.ndName = n
,A.ndSpecType=A.Proc {}
} <- Map.elems $ csNames cs]
)
\\ (map (A.Name emptyMeta . nameString . A.Name emptyMeta . fst) (csExternals cs))
\\ (map (A.Name emptyMeta . nameString . A.Name emptyMeta . fst) (csExternals cs)))
++
[A.Name emptyMeta $ nameString $ A.Name emptyMeta n
| A.NameDef {A.ndName = n
,A.ndSpecType=A.Function {}
} <- Map.elems $ csNames cs]
cgenTopLevel :: String -> A.AST -> CGen ()
cgenTopLevel headerName s