From 41dde17578bbfd89794314751035a1e3a21ababe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C4=8Cert=C3=ADk?= Date: Wed, 9 Feb 2022 16:33:03 -0700 Subject: [PATCH] LLVM: take into account the exit code in Stop --- src/libasr/codegen/asr_to_llvm.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libasr/codegen/asr_to_llvm.cpp b/src/libasr/codegen/asr_to_llvm.cpp index 90b3512b63..50db05c192 100644 --- a/src/libasr/codegen/asr_to_llvm.cpp +++ b/src/libasr/codegen/asr_to_llvm.cpp @@ -3472,12 +3472,11 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor printf(context, *module, *builder, printf_args); } - void visit_Stop(const ASR::Stop_t & /* x */) { + void visit_Stop(const ASR::Stop_t &x) { llvm::Value *fmt_ptr = builder->CreateGlobalStringPtr("STOP\n"); printf(context, *module, *builder, {fmt_ptr}); - int exit_code_int = 0; - llvm::Value *exit_code = llvm::ConstantInt::get(context, - llvm::APInt(32, exit_code_int)); + this->visit_expr(*x.m_code); + llvm::Value *exit_code = tmp; exit(context, *module, *builder, exit_code); }