changeset 31778:9feb455dd514

maint: Merge stable to default.
author John W. Eaton <jwe@octave.org>
date Wed, 25 Jan 2023 19:10:22 -0500
parents 17ec50a2f044 (current diff) e995783d78e7 (diff)
children 148ca3633be2
files libinterp/parse-tree/oct-parse.yy libinterp/parse-tree/pt-binop.h
diffstat 2 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/oct-parse.yy	Wed Jan 25 12:35:19 2023 -0800
+++ b/libinterp/parse-tree/oct-parse.yy	Wed Jan 25 19:10:22 2023 -0500
@@ -3164,6 +3164,10 @@
         maybe_convert_to_braindead_shortcircuit (lhs);
         maybe_convert_to_braindead_shortcircuit (rhs);
 
+        // Operands may have changed.
+        binexp->lhs (lhs);
+        binexp->rhs (rhs);
+
         octave_value::binary_op op_type = binexp->op_type ();
         if (op_type == octave_value::op_el_and
             || op_type == octave_value::op_el_or)
--- a/libinterp/parse-tree/pt-binop.h	Wed Jan 25 12:35:19 2023 -0800
+++ b/libinterp/parse-tree/pt-binop.h	Wed Jan 25 19:10:22 2023 -0500
@@ -90,6 +90,9 @@
   tree_expression * lhs () { return m_lhs; }
   tree_expression * rhs () { return m_rhs; }
 
+  void lhs (tree_expression *expr) { m_lhs = expr; }
+  void rhs (tree_expression *expr) { m_rhs = expr; }
+
   tree_expression * dup (symbol_scope& scope) const;
 
   octave_value evaluate (tree_evaluator&, int nargout = 1);