changeset 18125:25e87795f437 stable

don't error for non-integer ranges used as indices if --traditional * octave.cc (maximum_braindamage): Set warning state Octave:noninteger-range-as-index to "on".
author John W. Eaton <jwe@octave.org>
date Wed, 11 Dec 2013 22:21:06 -0500
parents 60dee9205bb5
children 4a4897cd6da1 7af19113ec43
files libinterp/corefcn/error.cc libinterp/octave.cc
diffstat 2 files changed, 3 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/error.cc	Tue Dec 10 18:04:17 2013 -0500
+++ b/libinterp/corefcn/error.cc	Wed Dec 11 22:21:06 2013 -0500
@@ -1638,12 +1638,7 @@
   disable_warning ("Octave:variable-switch-label");
 
   // This should be an error unless we are in maximum braindamage mode.
-  // FIXME: Not quite right.  This sets the error state even for braindamage
-  // mode.  Also, this error is not triggered in normal mode because another
-  // error handler catches it first and gives:
-  // error: subscript indices must be either positive integers or logicals
   set_warning_state ("Octave:noninteger-range-as-index", "error");
-
 }
 
 DEFUN (lasterror, args, ,
--- a/libinterp/octave.cc	Tue Dec 10 18:04:17 2013 -0500
+++ b/libinterp/octave.cc	Wed Dec 11 22:21:06 2013 -0500
@@ -498,6 +498,9 @@
   disable_warning ("Octave:function-name-clash");
   disable_warning ("Octave:load-file-in-path");
   disable_warning ("Octave:possible-matlab-short-circuit-operator");
+
+  // Initialized to "error" by default.
+  set_warning_state ("Octave:noninteger-range-as-index", "on");
 }
 
 // EMBEDDED is declared int instead of bool because this function is