summaryrefslogtreecommitdiff
path: root/Compiler.hs
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2019-04-21 20:39:33 +0200
committertomsmeding <tom.smeding@gmail.com>2019-04-21 20:39:33 +0200
commit019fadfaf181a8cdaa79334de0b1463a725bda42 (patch)
treee5a71360d2222fac56ee5159b742772b48f3298a /Compiler.hs
parent7b2f8b602e65ed2462b7d2c5a432d102f0ba6705 (diff)
Build with newer stack LTS
Diffstat (limited to 'Compiler.hs')
-rw-r--r--Compiler.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/Compiler.hs b/Compiler.hs
index 2e3b80b..69b2fd8 100644
--- a/Compiler.hs
+++ b/Compiler.hs
@@ -160,7 +160,10 @@ compileProgram (Program values) = runCM $ do
switchBlock bnext
addIns (RNone, IDiscard ref)
setTerm IExit
- ([firstbb], otherbbs) <- liftM (partition ((== bstart) . bbId) . Map.elems) (gets csBlocks)
+ (bbs, otherbbs) <- liftM (partition ((== bstart) . bbId) . Map.elems) (gets csBlocks)
+ let firstbb = case bbs of
+ [bb] -> bb
+ _ -> error "Multiple bb's with the same ID!"
funcs <- gets csFunctions
datas <- gets csDatas
return (IRProgram (firstbb : otherbbs) funcs datas)