3.4: --enable-softfloat float <--> double conversions not implemented yet

Gabor Greif ggreif@lucent.com
Wed Oct 8 06:17:00 GMT 2003


Hi all,

I am building a solaris host to powerpc-chorusos-elf
cross compiler from HEAD.

I configured this way:
  --with-cpu=860 --with-float=soft --disable-multilib --enable-softfloat

So far I was able to work around all problems, but this one stops me:

ppc-chorus/gcc/powerpc-chorusos-elf/libstdc++-v3/include/ostream:219: internal compiler error: in convert_move, at expr.c:630
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

The libc++ source lines are thus:
       __ostream_type&
       operator<<(float __f)
       { return this->operator<<(static_cast<double>(__f)); }


Looking into the gcc source, I see:

       /* Otherwise use a libcall.  */
       libcall = tab->handlers[to_mode][from_mode].libfunc;

       if (!libcall)
	/* This conversion is not implemented yet.  */
	abort ();

Obviously the handlers[to_mode][from_mode] element is not filled with
the proper call tree.

Actually, I do not really care what is emitted here, as the compiler
won't see any floating point code ever, but I prefer not to come to
a full stop :-)

Anyone who has a workaround or a proper fix for this?
(Even emitting a "nop" would be a good answer, I just do not
know how to modify gcc to do it.)

Thanks,

	Gabor



More information about the Gcc mailing list