From daed3986440fa678572604616b2b8ed7c726ec00 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 13 Jan 2025 11:55:19 +0100 Subject: [PATCH] Don't append return to void procedures --- gcc/elna-generic.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gcc/elna-generic.cc b/gcc/elna-generic.cc index cc7990d..ba0eea8 100644 --- a/gcc/elna-generic.cc +++ b/gcc/elna-generic.cc @@ -160,16 +160,13 @@ namespace gcc this->symbol_map->enter(definition->identifier(), source::make_info(this->main_fndecl)); - tree resdecl = build_decl(UNKNOWN_LOCATION, RESULT_DECL, NULL_TREE, integer_type_node); + tree resdecl = build_decl(UNKNOWN_LOCATION, RESULT_DECL, + NULL_TREE, TREE_TYPE(TREE_TYPE(this->main_fndecl))); DECL_CONTEXT(resdecl) = this->main_fndecl; DECL_RESULT(this->main_fndecl) = resdecl; - tree set_result = build2(INIT_EXPR, void_type_node, DECL_RESULT(main_fndecl), - build_int_cst_type(integer_type_node, 0)); - tree return_stmt = build1(RETURN_EXPR, void_type_node, set_result); enter_scope(); definition->body().accept(this); - append_to_statement_list(return_stmt, &this->current_statements); tree_symbol_mapping mapping = leave_scope();