diff --git a/src/libasr/codegen/asr_to_c_cpp.h b/src/libasr/codegen/asr_to_c_cpp.h index d6d26bd603..df01b5bda7 100644 --- a/src/libasr/codegen/asr_to_c_cpp.h +++ b/src/libasr/codegen/asr_to_c_cpp.h @@ -1072,6 +1072,14 @@ PyMODINIT_FUNC PyInit_lpython_module_)" + fn_name + R"((void) { } else { args += src; } + } else if (ASR::is_a(*m_args[i].m_value)) { + ASR::Variable_t* param = ASRUtils::EXPR2VAR(f->m_args[i]); + if (param->m_intent == ASRUtils::intent_inout + || param->m_intent == ASRUtils::intent_out || ASR::is_a(*type)) { + args += "&" + src; + } else { + args += src; + } } else { if( ASR::is_a(*type) ) { args += "&" + src;