+ /* This catches a FreeBSD 6.1 bug: it doesn't round. */
+ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
+ || (strcmp (result, "0x1.83p+0 33") != 0
+ && strcmp (result, "0x3.05p-1 33") != 0
+ && strcmp (result, "0x6.0ap-2 33") != 0
+ && strcmp (result, "0xc.14p-3 33") != 0))
+ return 1;