changeset 28547:66397e171801 stable

error on undefined elements in matrix lists (bug #58695) * pt-tm-const.cc (tm_row_const::init): Throw error for empty elements in list. From Fernando Alvarruiz. Update tests.
author John W. Eaton <jwe@octave.org>
date Thu, 09 Jul 2020 09:22:58 -0400
parents ac7ab2a9018e
children 605b9e811bf3 f48162881819
files libinterp/parse-tree/pt-tm-const.cc
diffstat 1 files changed, 5 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-tm-const.cc	Thu Jul 09 09:20:10 2020 -0400
+++ b/libinterp/parse-tree/pt-tm-const.cc	Thu Jul 09 09:22:58 2020 -0400
@@ -171,7 +171,7 @@
         octave_value tmp = elt->evaluate (tw);
 
         if (tmp.is_undefined ())
-          continue;
+          error ("undefined element in matrix list");
 
         if (tmp.is_cs_list ())
           {
@@ -935,18 +935,11 @@
 %!shared es
 %! es = struct ("a", {});
 %!
-%!assert <58695> ([1, es.a, 3], [1, 3])
-%!assert <58695> ([1, my_undef(), 3], [1, 3])
-%!
-%!assert <58695> ([es.a, es.a, 3], 3)
-%!assert <58695> ([my_undef(), my_undef(), 3], 3)
-%!
 %!assert <58695> ([1; es.a; 3], [1; 3])
-%!assert <58695> ([1; my_undef(), 3], [1; 3])
+%!test <58695>
+%! fail ("undefined element in matrix list", "[1; my_undef(), 3]");
 %!
 %!assert <58695> ([es.a; es.a; 3], 3)
-%!assert <58695> ([my_undef(); my_undef(); 3], 3)
-%!
-%!assert <58695> ([es.a; es.a; 3], 3)
-%!assert <58695> ([my_undef(); my_undef(); 3], 3)
+%!test <58695>
+%! fail ("undefined element in matrix list", "[my_undef(); my_undef(); 3]")
 */