Hi, [for the record, this issue was originally reported on the MPFR list: https://sympa.inria.fr/sympa/arc/mpfr/2022-10/msg00001.html]
Originally, it appeared only under Windows with the clang compiler, and using MPIR, but I can reproduce it under Linux with GMP 6.2.1: 1) configure GMP 2) uncomment the #define HAVE_VSNPRINTF 1 line in config.h 3) build GMP 4) run the MPFR tsprintf test file with the built GMP The issue is because __gmp_replacement_vsnprintf does not deal with %a not %A. Then when calling gmp_printf ("%a", -1.25) for example, we get total_width=3 initially, we jump to the 'default' case, where the ASSERT(0) does nothing in production code, and we go to next, where width=0 and prec=6, thus total_width is increased to 9. But we also have len=9 because buf='-0x1.4p+0'. Then the assertion ASSERT_ALWAYS (len < total_width) fails. Paul _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs