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);