C++ PATCH: 14035

Andrew Haley aph@redhat.com
Wed Oct 20 17:12:00 GMT 2004


Andreas Schwab writes:
 > Mark Mitchell <mark@codesourcery.com> writes:
 > 
 > > This patch fixes PR c++/14035.  This PR was opened because of a cast
 > > where we generated wrong-code for a C-style cast.  In particular, we
 > > generated a copy constructor call instead of a derived-to-base
 > > conversion.
 > 
 > This cause libjava to no longer build on ia64-linux:
 > 
 > ../../../libjava/java/lang/natClass.cc: In function `void _Jv_LayoutVTableMethods(java::lang::Class*)':
 > ../../../libjava/java/lang/natClass.cc:1823: error: cast from 'java::lang::Class*' to 'int' loses precision
 > ../../../libjava/java/lang/natClass.cc:1831: error: cast from 'java::lang::Class*' to 'int' loses precision
 > ../../../libjava/java/lang/natClassLoader.cc: In function `void _Jv_PrepareCompiledClass(java::lang::Class*)':
 > ../../../libjava/java/lang/natClassLoader.cc:134: error: cast from 'java::lang::Class*' to 'int' loses precision
 > ../../../libjava/java/lang/natClassLoader.cc:139: error: cast from 'java::lang::Class*' to 'int' loses precision
 > 
 > The casts to int should probably be changed to casts to uaddr.

Yes, that is OK.  size_t would be just as good.

Andrew.



More information about the Gcc-patches mailing list