summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2018-11-21 15:21:01 -0500
committerJoe Crayne <joe@jerkface.net>2018-11-21 15:21:01 -0500
commit50c2b769e64734c2f6b5a84cdef2de673b1b7d70 (patch)
treea3d94f8c2f316bfba72d484dc57c729343ef86e8
parent1e20d8c100104e15d80c7f5ea61223957460a754 (diff)
Fix pattern fail for zero-argument functions.
-rw-r--r--c2haskell.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/c2haskell.hs b/c2haskell.hs
index 0e857a9..0c31c93 100644
--- a/c2haskell.hs
+++ b/c2haskell.hs
@@ -550,12 +550,14 @@ setBody bdy (CDeclExt (CDecl xs ys pos)) = (CFDefExt (CFunDef xs v [] bdy pos))
550 _ -> CDeclr Nothing [] Nothing [] pos 550 _ -> CDeclr Nothing [] Nothing [] pos
551 551
552makeStub d = -- @(CDeclExt (CDecl xs ys pos)) = 552makeStub d = -- @(CDeclExt (CDecl xs ys pos)) =
553 let oargs:xs = getArgList d 553 let rval = True -- todo: Set False for void function.
554 (args,vs) = makeParameterNames oargs
555 name = concatMap identToString $ take 1 $ catMaybes $ sym d 554 name = concatMap identToString $ take 1 $ catMaybes $ sym d
556 rval = True -- todo: Set False for void function.
557 msg = "undefined: " ++ HS.prettyPrint (makeAcceptableDecl $ head $ sig d) ++ "\n" 555 msg = "undefined: " ++ HS.prettyPrint (makeAcceptableDecl $ head $ sig d) ++ "\n"
558 in setBody (stubBody ("f_"++name) vs rval msg) $ changeArgList (const $ args:xs) d 556 in case getArgList d of
557 oargs:xs ->
558 let (args,vs) = makeParameterNames oargs
559 in setBody (stubBody ("f_"++name) vs rval msg) $ changeArgList (const $ args:xs) d
560 [] -> setBody (stubBody ("f_"++name) [] rval msg) d
559 561
560 562
561parameterIdent :: CDeclaration a -> Maybe Ident 563parameterIdent :: CDeclaration a -> Maybe Ident