on master help sign in
Utility function for llvm codegen bugchecking
06e51b8Benjamin Saunders
src/IRTS/CodegenLLVM.hs+11−1
@@ -935,4 +935,14 @@ idrCall name args =
935 , arguments = map (\x -> (x, [])) args
935 , arguments = map (\x -> (x, [])) args
936 , functionAttributes = []
936 , functionAttributes = []
937 , metadata = []
937 , metadata = []
938− }
938+ }
939+
940+assert :: Operand -> String -> Codegen ()
941+assert condition message = do
942+ passed <- getName "assertPassed"
943+ failed <- getName "assertFailed"
944+ terminate $ CondBr condition passed failed []
945+ newBlock failed
946+ cgExpr (SError message)
947+ terminate $ Unreachable []
948+ newBlock passed