Commit 14c1d88f authored by dterei's avatar dterei
Browse files

LLVM: Fix bug with calling tail with empty list

parent cf1c939d
......@@ -58,10 +58,13 @@ instance Show LlvmType where
show (LMStruct tys ) = "{" ++ (commaCat tys) ++ "}"
show (LMFunction (LlvmFunctionDecl _ _ _ r varg p _))
= let varg' = if varg == VarArgs then ", ..." else ""
args = (tail.concat) $
= let args = ((drop 1).concat) $ -- use drop since it can handle empty lists
map (\(t,a) -> "," ++ show t ++ " " ++ spaceCat a) p
in show r ++ " (" ++ args ++ varg' ++ ")"
varg' = case varg of
VarArgs | not (null args) -> ", ..."
| otherwise -> "..."
_otherwise -> ""
in show r ++ " (" ++ args ++ varg' ++ ")"
show (LMAlias s _ ) = "%" ++ unpackFS s
......@@ -351,14 +354,17 @@ data LlvmFunctionDecl = LlvmFunctionDecl {
instance Show LlvmFunctionDecl where
show (LlvmFunctionDecl n l c r varg p a)
= let varg' = if varg == VarArgs then ", ..." else ""
= let args = ((drop 1).concat) $ -- use drop since it can handle empty lists
map (\(t,a) -> "," ++ show t ++ " " ++ spaceCat a) p
varg' = case varg of
VarArgs | not (null args) -> ", ..."
| otherwise -> "..."
_otherwise -> ""
align = case a of
Just a' -> " align " ++ show a'
Nothing -> ""
args = (tail.concat) $
map (\(t,a) -> "," ++ show t ++ " " ++ spaceCat a) p
in show l ++ " " ++ show c ++ " " ++ show r ++ " @" ++ unpackFS n ++
"(" ++ args ++ varg' ++ ")" ++ align
in show l ++ " " ++ show c ++ " " ++ show r ++ " @" ++ unpackFS n ++
"(" ++ args ++ varg' ++ ")" ++ align
type LlvmFunctionDecls = [LlvmFunctionDecl]
......
-- ---------------------------------------------------------------------------- -- | Deal with Cmm registers
--------------------------------------------------------------------------------
-- | Deal with Cmm registers
--
module LlvmCodeGen.Regs (
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment