Mercurial > hg > octave-nkf
diff src/ops.h @ 7922:935be827eaf8
error for NaN values in & and | expressions
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 11 Jul 2008 14:56:30 -0400 |
parents | a1dbe9d80eee |
children | 2b8952e133c9 |
line wrap: on
line diff
--- a/src/ops.h +++ b/src/ops.h @@ -293,6 +293,20 @@ (v1.t1 ## _value () op v2.t2 ## _value ()); \ } +#define DEFSCALARBOOLOP_OP(name, t1, t2, op) \ + BINOPDECL (name, a1, a2) \ + { \ + CAST_BINOP_ARGS (const octave_ ## t1&, const octave_ ## t2&); \ + if (xisnan (v1.t1 ## _value ()) || xisnan (v2.t2 ## _value ())) \ + { \ + error ("invalid conversion from NaN to logical"); \ + return octave_value (); \ + } \ + else \ + return octave_value \ + (v1.t1 ## _value () op v2.t2 ## _value ()); \ + } + #define DEFNDBINOP_OP(name, t1, t2, e1, e2, op) \ BINOPDECL (name, a1, a2) \ { \