# HG changeset patch # User John W. Eaton # Date 1594300558 14400 # Node ID 3dae50cf0bc5fd0070f565eb8a75fd755806dd8d # Parent dc53b7b7af8b9fccb26ddb42355a9f6c7d5f07ca don't allow function return_list objects to be null * oct-parse.yy (base_parser::finish_function, base_parser::finish_classdef_external_method): Ensure that return list is always defined, even if it is empty. diff -r dc53b7b7af8b -r 3dae50cf0bc5 libinterp/parse-tree/oct-parse.yy --- a/libinterp/parse-tree/oct-parse.yy Wed Jul 08 21:24:11 2020 +0200 +++ b/libinterp/parse-tree/oct-parse.yy Thu Jul 09 09:15:58 2020 -0400 @@ -3720,8 +3720,10 @@ { tree_function_def *retval = nullptr; - if (ret_list) - ret_list->mark_as_formal_parameters (); + if (! ret_list) + ret_list = new tree_parameter_list (tree_parameter_list::out); + + ret_list->mark_as_formal_parameters (); if (fcn) { @@ -4146,8 +4148,10 @@ tree_parameter_list *ret_list, comment_list *cl) { - if (ret_list) - fcn->define_ret_list (ret_list); + if (! ret_list) + ret_list = new tree_parameter_list (tree_parameter_list::out); + + fcn->define_ret_list (ret_list); if (cl) fcn->stash_leading_comment (cl);