This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]