@@ -339,6 +339,7 @@ cgExpr (SChkCase inspect alts) = do
339 terminate $ CondBr isVal valBBN conBBN []
339 terminate $ CondBr isVal valBBN conBBN []
340 newBlock conBBN
340 newBlock conBBN
341 result <- cgCase val alts
341 result <- cgCase val alts
342+ caseExitBlock <- gets currentBlockName
342 case result of
343 case result of
343 Nothing -> do
344 Nothing -> do
344 terminate $ Unreachable []
345 terminate $ Unreachable []
@@ -348,7 +349,7 @@ cgExpr (SChkCase inspect alts) = do
348 terminate $ Br valBBN []
349 terminate $ Br valBBN []
349 newBlock valBBN
350 newBlock valBBN
350 Just <$> (inst $ Phi (PointerType valueType (AddrSpace 0))
351 Just <$> (inst $ Phi (PointerType valueType (AddrSpace 0))
351− [(val, originBlock), (r, conBBN)] [])
352+ [(val, originBlock), (r, caseExitBlock)] [])
352cgExpr (SProj conVar idx) = do
353cgExpr (SProj conVar idx) = do
353 val <- var conVar
354 val <- var conVar
354 case val of
355 case val of