This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
3.4: --enable-softfloat float <--> double conversions not implementedyet
- From: Gabor Greif <ggreif at lucent dot com>
- To: gcc at gcc dot gnu dot org
- Cc: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Oct 2003 08:17:40 +0200
- Subject: 3.4: --enable-softfloat float <--> double conversions not implementedyet
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