on master help sign in
Fix incorrect phi terminating ChkCase
commite8ae2f417c0d99fa0ee9336f774c032eb0552a14 authorBenjamin Saunders <besaunde@sfu.ca> dateTue 25 Jun 2013, 13:58 (13 years ago) parentf553076
1 file changed+2−1
src/IRTS/CodegenLLVM.hs+2−1
src/IRTS/CodegenLLVM.hs+2−1
@@ -339,6 +339,7 @@ cgExpr (SChkCase inspect alts) = do
339339 terminate $ CondBr isVal valBBN conBBN []
340340 newBlock conBBN
341341 result <- cgCase val alts
342+ caseExitBlock <- gets currentBlockName
342343 case result of
343344 Nothing -> do
344345 terminate $ Unreachable []
@@ -348,7 +349,7 @@ cgExpr (SChkCase inspect alts) = do
348349 terminate $ Br valBBN []
349350 newBlock valBBN
350351 Just <$> (inst $ Phi (PointerType valueType (AddrSpace 0))
351− [(val, originBlock), (r, conBBN)] [])
352+ [(val, originBlock), (r, caseExitBlock)] [])
352353cgExpr (SProj conVar idx) = do
353354 val <- var conVar
354355 case val of