Re: Build failure with the 0.98 merge
Tom Tromey <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
>>>>> "Andrew" == Andrew John Hughes <[email protected]> writes: Andrew> /home/andrew/projects/classpath/gcj/sources/gcc/libjava/java/lang/StringBuffer.h:97: Andrew> error: 'java::lang::AbstractStringBuffer* Andrew> java::lang::StringBuffer::StringBuffer$append(jchar)' cannot be Andrew> overloaded Andrew> /home/andrew/projects/classpath/gcj/sources/gcc/libjava/java/lang/StringBuffer.h:38: Andrew> Is there an issue with gcj and the use of covariant return Andrew> types from 1.5? There shouldn't be. javah has special code in it to rename bridge method targets in this situation. Looking at the header I see: ::java::lang::StringBuffer * StringBuffer$append(jchar); ::java::lang::Appendable * append(jchar); ::java::lang::AbstractStringBuffer * StringBuffer$append(jchar); And looking at AbstractStringBuffer.h: virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar); virtual ::java::lang::Appendable * append(jchar); So I think javah's bug is that it does not understand how bridge methods might be inherited, and so it does not know rename targets according to the class in the hierarchy where they first appeared. IOW, that 3rd append method in StringBuffer.h should be named AbstractStringBuffer$append. Tom