never set the startblock to bad (even without the self-referencing loop)
[libfirm] / ir / tv / fltcalc.c
index 7c5d6fd..69ba024 100644 (file)
@@ -711,6 +711,7 @@ static char* _fdiv(const char* a, const char* b, char* result)
   return _normalize(result, result, sc_had_carry());
 }
 
+#if 0
 static void _power_of_ten(int exp, descriptor_t *desc, char *result)
 {
   char *build;
@@ -748,6 +749,7 @@ static void _power_of_ten(int exp, descriptor_t *desc, char *result)
     _normalize(result, result, 0);
   }
 }
+#endif
 
 /**
  * Truncate the fractional part away.
@@ -1528,7 +1530,8 @@ char *fc_print(const void *a, char *buf, int buflen, unsigned base)
 
     case FC_PACKED:
     default:
-      snprintf(buf, buflen, "%s", sc_print(_pack(val, mul_1), value_size*4, SC_HEX));
+      snprintf(buf, buflen, "%s", sc_print(_pack(val, mul_1), value_size*4, SC_HEX, 0));
+      buf[buflen - 1] = '\0';
       break;
   }
   return buf;
@@ -1583,6 +1586,7 @@ void init_fltcalc(int precision)
     calc_buffer_size = DESCRIPTOR_POS + sizeof(descriptor_t);
 
     calc_buffer = xmalloc(calc_buffer_size);
+    memset(calc_buffer, 0, calc_buffer_size);
     DEBUGPRINTF(("init fltcalc:\n\tVALUE_SIZE = %d\n\tSIGN_POS = %d\n\tEXPONENT_POS = %d\n\tMANTISSA_POS = %d\n\tDESCRIPTOR_POS = %d\n\tCALC_BUFFER_SIZE = %d\n\tcalc_buffer = %p\n\n", value_size, SIGN_POS, EXPONENT_POS, MANTISSA_POS, DESCRIPTOR_POS, calc_buffer_size, calc_buffer));
 #ifdef HAVE_LONG_DOUBLE
     DEBUGPRINTF(("\tUsing long double (1-15-64) interface\n"));