------- Comment #18 from pcarlini at suse dot de 2007-05-11 18:28 ------- (In reply to comment #17) > Using a compiler based on gcc version 4.2.0 20070317 (prerelease), > i686-pc-linux-gnu X arc-elf32, I see execution failures for > 27_io/basic_istream/extractors_arithmetic/char/12.c . > Using some printf (actually, std::cerr) debugging, I've found that > the failure occurs for the float conversion, and the value of t is inf. > > Applying the patch from PR31117 and your patch from the attachement > referenced above fixes the problem.
That's interesting, slightly unexpected. For, the patch attached here (which I have applied in mainline, in the meanwhile), was only meant to fix, in mainline again, possible issues caused by the fix for PR31117. In short, in order to solve 31117, we are doing our best to avoid errno, but that cannot be done safely when the target doesn't have infinities. Therefore, I would ask you to untangle a bit this thing... Apparently, for some reason, for your target onte of the checks (which one? !finitef? !finite?) is not working, instead the final f != __builtin_huge_valf() catches it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31836