Mercurial > octave
changeset 28545:3dae50cf0bc5 stable
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.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 09 Jul 2020 09:15:58 -0400 |
parents | dc53b7b7af8b |
children | ac7ab2a9018e |
files | libinterp/parse-tree/oct-parse.yy |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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);