This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/31115] [4.3 regression] libstdc++ 22_locale/num_get/get/char/2.cc 27_io/basic_ostream/inserters_arithmetic/char/6.cc
- From: "hp at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Mar 2007 22:04:55 -0000
- Subject: [Bug middle-end/31115] [4.3 regression] libstdc++ 22_locale/num_get/get/char/2.cc 27_io/basic_ostream/inserters_arithmetic/char/6.cc
- References: <bug-31115-507@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from hp at gcc dot gnu dot org 2007-03-10 22:04 -------
Created an attachment (id=13186)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13186&action=view)
Preprocessed code
cc1 -fpreprocessed strtod.i -melf -quiet -dumpbase strtod.c -auxbase-strip
nrblib_a-strtod.o -g -O2 -O2 -O2 -version -fno-builtin -fno-reorder-blocks
-fno-inline -fdump-tree-vrp -o strtod.s
It seems that in this code:
...
e1 = -e1;
if ( (i = e1 & 15) !=0)
((U*)&rv)->d /= __mprec_tens[i];
if (e1 >>= 4) {
if (e1 >= 1 << 5)
goto undfl;
if (e1 & 0x10)
scale = 2*53;
...
that the if (e1 >= 1 << 5) goto undfl; is optimized away. Not sure though.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31115