diff src/pt-exp-base.cc @ 1093:51fd9e40a7f7

[project @ 1995-02-03 21:57:34 by jwe]
author jwe
date Fri, 03 Feb 1995 21:57:34 +0000
parents 7b7e58b31316
children 22741d6ed818
line wrap: on
line diff
--- a/src/pt-exp-base.cc	Thu Feb 02 16:47:56 1995 +0000
+++ b/src/pt-exp-base.cc	Fri Feb 03 21:57:34 1995 +0000
@@ -1940,8 +1940,12 @@
       tree_constant rhs_val = rhs->eval (0);
       if (error_state)
 	{
-	  if (error_state)
-	    eval_error ();
+	  eval_error ();
+	}
+      else if (rhs_val.is_undefined ())
+	{
+	  error ("value on right hand side of assignment is undefined");
+	  eval_error ();
 	}
       else if (! index)
 	{
@@ -2112,8 +2116,9 @@
 	      tree_constant *tmp = 0;
 	      if (results(i).is_undefined ())
 		{
-		  Matrix m;
-		  tmp = new tree_constant (m);
+		  error ("element number %d undefined in return list", i+1);
+		  eval_error ();
+		  break;
 		}
 	      else
 		tmp = new tree_constant (results(i));
@@ -2808,7 +2813,16 @@
 // Copy return values out.
 
     if (ret_list)
-      retval = ret_list->convert_to_const_vector (vr_list);
+      {
+	if (nargout > 0 && user_pref.define_all_return_values)
+	  {
+	    tree_constant tmp = builtin_any_variable ("default_return_value");
+	    if (tmp.is_defined ())
+	      ret_list->initialize_undefined_elements (tmp);
+	  }
+
+	retval = ret_list->convert_to_const_vector (vr_list);
+      }
     else if (user_pref.return_last_computed_value)
       retval(0) = last_computed_value;
   }