on master help sign in
LLVM codegen: Print runtime errors
f553076Benjamin Saunders
src/IRTS/CodegenLLVM.hs+4
@@ -388,6 +388,10 @@ cgExpr (SOp fn args) = do
388 Nothing -> return Nothing
388 Nothing -> return Nothing
389cgExpr SNothing = return . Just . ConstantOperand $ nullValue
389cgExpr SNothing = return . Just . ConstantOperand $ nullValue
390cgExpr (SError msg) = do -- TODO: Print message
390cgExpr (SError msg) = do -- TODO: Print message
391+ str <- addGlobal' (ArrayType (2 + fromIntegral (length msg)) (IntegerType 8))
392+ (cgConst' (TT.Str (msg ++ "\n")))
393+ inst' $ simpleCall "putStr" [ConstantOperand $ C.GetElementPtr True str [ C.Int 32 0
394+ , C.Int 32 0]]
391 inst' $ Call { isTailCall = True
395 inst' $ Call { isTailCall = True
392 , callingConvention = CC.C
396 , callingConvention = CC.C
393 , returnAttributes = []
397 , returnAttributes = []