]> www.ginac.de Git - cln.git/blobdiff - src/integer/conv/cl_I_to_UQ.cc
Avoid some "suggest explicit braces to avoid ambiguous ‘else’" warnings.
[cln.git] / src / integer / conv / cl_I_to_UQ.cc
index 5e522f2462219cea091b0d0bf78f6bac619cf2a2..8192a499d0161e576fbe63fb47f1b57542501508 100644 (file)
@@ -1,29 +1,32 @@
 // cl_I_to_UQ().
 
 // General includes.
-#include "cl_sysdep.h"
+#include "base/cl_sysdep.h"
 
 // Specification.
-#include "cl_I.h"
+#include "integer/cl_I.h"
 
 
 // Implementation.
 
 #ifdef intQsize
 
-#include "cl_number.h"
-#include "cl_DS.h"
-#include "cl_io.h"
-#include "cl_integer_io.h"
-#include "cl_abort.h"
+#include "cln/number.h"
+#include "base/digitseq/cl_DS.h"
+#include "cln/io.h"
+#include "cln/integer_io.h"
+#include "cln/exception.h"
+#include <sstream>
+
+namespace cln {
 
 uint64 cl_I_to_UQ (const cl_I& obj)
 {
        if (fixnump(obj)) {
                // Fixnum
-               var sint32 wert = FN_to_L(obj);
+               var sintV wert = FN_to_V(obj);
                if (wert >= 0)
-                       return (uint64)(uint32)wert;
+                       return (uint64)(uintV)wert;
                goto bad;
        } else { // Bignum
                var cl_heap_bignum* bn = TheBignum(obj);
@@ -31,7 +34,7 @@ uint64 cl_I_to_UQ (const cl_I& obj)
                if ((sintD)mspref(arrayMSDptr(bn->data,len),0) < 0)
                        goto bad;
                #define IF_LENGTH(i)  \
-                 if (bn_minlength <= i) /* genau i Digits überhaupt möglich? */\
+                 if (bn_minlength <= i) /* genau i Digits überhaupt möglich? */\
                    if (len == i) /* genau i Digits? */                         \
                      /* 2^((i-1)*intDsize-1) <= obj < 2^(i*intDsize-1) */      \
                      if ( (i*intDsize-1 > 64)                                  \
@@ -89,10 +92,12 @@ uint64 cl_I_to_UQ (const cl_I& obj)
                #undef IF_LENGTH
        }
        bad: // unpassendes Objekt
-       fprint(cl_stderr, "Not a 64-bit integer: ");
-       fprint(cl_stderr, obj);
-       fprint(cl_stderr, "\n");
-       cl_abort();
+       std::ostringstream buf;
+       fprint(buf, "Not a 64-bit integer: ");
+       fprint(buf, obj);
+       throw runtime_exception(buf.str());
 }
 
+}  // namespace cln
+
 #endif