diff --git a/libinterp/operators/op-mi.cc b/libinterp/operators/op-mi.cc --- a/libinterp/operators/op-mi.cc +++ b/libinterp/operators/op-mi.cc @@ -59,7 +59,9 @@ oct_unop_unsigned_uminus (const octave_b // We are storing a uint64 value, so some fakery is needed here. // Is there a better way? - octave_uint64 val = v.uint64_scalar_value (); + // FIXME: Maybe there should also be octave_magiic_int::as_TYPE_value + // functions? + octave_uint64 val (v.scalar_ref ()); uint64_t ival = val.value (); @@ -103,7 +105,9 @@ oct_unop_signed_uminus (const octave_bas { const octave_magic_int& v = dynamic_cast (a); - octave_int64 val = v.int64_scalar_value (); + // FIXME: Maybe there should also be octave_magiic_int::as_TYPE_value + // functions? + octave_int64 val (v.scalar_ref ()); return octave_value (new octave_magic_int (-val)); }