]> www.ginac.de Git - cln.git/commitdiff
* src/integer/output/cl_I_print.cc (print_integer): workaround
authorRichard Kreckel <kreckel@ginac.de>
Fri, 30 Apr 2004 21:58:07 +0000 (21:58 +0000)
committerRichard Kreckel <kreckel@ginac.de>
Fri, 30 Apr 2004 21:58:07 +0000 (21:58 +0000)
GCC compiler bug (cf. Debian bug#246319).

ChangeLog
src/integer/output/cl_I_print.cc

index 806fb3870b7855310ec51727177917ba1f095b3b..44a30760bebce42aed69ba11de3edc21fdf6ec8d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-30  Richard B. Kreckel  <kreckel@ginac.de>
+
+       * src/integer/output/cl_I_print.cc (print_integer): workaround
+       GCC compiler bug (cf. Debian bug#246319).
+
 2004-03-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * m4/gmp.m4 (CL_GMP_CHECK): Do not lose LIBS setting with config.cache
index 65688b45fa22c22ff1d849bef7e68a297df573fd..541709b94252dc4289713ce00055fad0b23286c9 100644 (file)
@@ -28,6 +28,11 @@ void print_integer (std::ostream& stream, unsigned int base, const cl_I& z)
        var uintL need = cl_digits_need(abs_z,base);
        var uintB* ziffern = cl_alloc_array(uintB,need); // Platz für die Ziffern
        var cl_digits erg; erg.LSBptr = &ziffern[need];
+#if (defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ < 4))
+       // workaround GCC-3 compiler bug fixed in GCC-3.4.0 (cf. Debian bug#246319)
+       static char dummy[40];
+       snprintf(dummy,40,"%d%x%x",need,&erg,erg.LSBptr);
+#endif
        I_to_digits(abs_z,(uintD)base,&erg); // Umwandlung in Ziffern
        // Ziffern ausgeben:
        {