From 9be1a263ea727d27bbba3f9990333dd3b414e1c4 Mon Sep 17 00:00:00 2001 From: anutosh491 Date: Sun, 12 Nov 2023 13:55:40 +0530 Subject: [PATCH] Removed redundant return node after processing an ASR through subroutine_from_function pass --- src/libasr/pass/pass_utils.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libasr/pass/pass_utils.h b/src/libasr/pass/pass_utils.h index 828d6033a9..ded8cb078b 100644 --- a/src/libasr/pass/pass_utils.h +++ b/src/libasr/pass/pass_utils.h @@ -821,6 +821,14 @@ namespace LCompilers { s_func_type->m_arg_types = arg_types.p; s_func_type->n_arg_types = arg_types.n; s_func_type->m_return_var_type = nullptr; + + Vec func_body; + func_body.reserve(al, x->n_body - 1); + for (size_t i=0; i< x->n_body - 1; i++) { + func_body.push_back(al, x->m_body[i]); + } + x->m_body = func_body.p; + x->n_body = func_body.n; } } for (auto &item : x->m_symtab->get_scope()) {