diff --git a/integration_tests/CMakeLists.txt b/integration_tests/CMakeLists.txt index 3540040ea6..cf1ce217c9 100644 --- a/integration_tests/CMakeLists.txt +++ b/integration_tests/CMakeLists.txt @@ -714,9 +714,9 @@ RUN(NAME symbolics_07 LABELS cpython_sym c_sym llvm_sym NOFAST) RUN(NAME symbolics_08 LABELS cpython_sym c_sym llvm_sym) RUN(NAME symbolics_09 LABELS cpython_sym c_sym llvm_sym NOFAST) RUN(NAME symbolics_10 LABELS cpython_sym c_sym llvm_sym NOFAST) -RUN(NAME symbolics_11 LABELS cpython_sym c_sym NOFAST) +RUN(NAME symbolics_11 LABELS cpython_sym c_sym llvm_sym NOFAST) RUN(NAME symbolics_12 LABELS cpython_sym c_sym llvm_sym NOFAST) -RUN(NAME symbolics_13 LABELS cpython_sym c_sym NOFAST) +RUN(NAME symbolics_13 LABELS cpython_sym c_sym llvm_sym NOFAST) RUN(NAME sizeof_01 LABELS llvm c EXTRAFILES sizeof_01b.c) diff --git a/src/libasr/codegen/asr_to_llvm.cpp b/src/libasr/codegen/asr_to_llvm.cpp index 6d2c4e7260..4e447b242c 100644 --- a/src/libasr/codegen/asr_to_llvm.cpp +++ b/src/libasr/codegen/asr_to_llvm.cpp @@ -7766,9 +7766,9 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor if (llvm_symtab.find(h) != llvm_symtab.end()) { tmp = llvm_symtab[h]; if( !ASRUtils::is_array(arg->m_type) ) { - if (x_abi == ASR::abiType::Source && ASR::is_a(*arg->m_type)) { - if (arg->m_intent == intent_local) { + if ( orig_arg_intent != ASRUtils::intent_out && + arg->m_intent == intent_local ) { // Local variable of type // CPtr is a void**, so we // have to load it @@ -7815,9 +7815,10 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor } } } else if (is_a(*arg_type)) { - if (arg->m_intent == intent_local) { - // Local variable of type - // CPtr is a void**, so we + if ( arg->m_intent == intent_local || + arg->m_intent == ASRUtils::intent_out) { + // Local variable or Dummy out argument + // of type CPtr is a void**, so we // have to load it tmp = CreateLoad(tmp); } diff --git a/src/libasr/codegen/llvm_utils.cpp b/src/libasr/codegen/llvm_utils.cpp index 88f77ec930..e19f309b1f 100644 --- a/src/libasr/codegen/llvm_utils.cpp +++ b/src/libasr/codegen/llvm_utils.cpp @@ -1267,6 +1267,7 @@ namespace LCompilers { break; } case (ASR::ttypeType::CPtr) : { + a_kind = 8; llvm_type = llvm::Type::getVoidTy(context)->getPointerTo(); break; }