Bug 40816 - error: 'jvariant::jvariant(jbyte)' cannot be overloaded
Summary: error: 'jvariant::jvariant(jbyte)' cannot be overloaded
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: java (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Andrew Haley
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-21 08:44 UTC by Mathieu Malaterre
Modified: 2010-09-28 14:05 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mathieu Malaterre 2009-07-21 08:44:24 UTC
> I didn't see the original message to which this is replying.

It's about C++ code which contains a function overloaded on jbyte and
jboolean.  This fails with GCJ because they are typedef'ed to the same
type.

> If you can make a test case I'll see if the bug can be fixed.

Compare the table I referenced with these pieces from jni_md.h:

| typedef int    jbyte  __attribute__((__mode__(__QI__)));
| typedef int    jshort __attribute__((__mode__(__HI__)));
| typedef int    jint   __attribute__((__mode__(__SI__)));
| typedef int    jlong  __attribute__((__mode__(__DI__)));
| typedef int    jboolean __attribute__((__mode__(__QI__)));
| typedef unsigned short jchar __attribute__((__mode__(__HI__)));
| typedef float  jfloat;
| typedef double jdouble;
| typedef jint jsize;

| typedef int8_t jbyte;
| typedef int16_t jshort;
| typedef int32_t jint;
| typedef int64_t jlong;
| typedef float jfloat;
| typedef double jdouble;
| typedef jint jsize;
| typedef int8_t jboolean;
| typedef uint16_t jchar;

jboolean is signed, but Sun's spec says it should be unsigned.
Comment 1 Mathieu Malaterre 2009-10-27 09:43:19 UTC
Copying from the mailing list:


from	Andrew Haley <aph@redhat.com>
to	Tom Tromey <tromey@redhat.com>
cc	java@gcc.gnu.org
date	Mon, Oct 19, 2009 at 5:03 PM
subject	Re: Is gcj dead?
mailing list	<java.gcc.gnu.org> Filter messages from this mailing list
unsubscribe	Unsubscribe from this mailing-list
	
hide details Oct 19 (8 days ago)
	
- Show quoted text -
Mathieu Malaterre wrote:
> On Mon, Oct 19, 2009 at 3:10 PM, Andrew Haley <aph@redhat.com> wrote:
>> Mathieu Malaterre wrote:
>>> On Mon, Oct 19, 2009 at 3:00 PM, Andrew Haley <aph@redhat.com> wrote:
>>>> Mathieu Malaterre wrote:
>>>>> On Sun, Oct 18, 2009 at 12:08 PM, Andrew Haley <aph@redhat.com> wrote:
>>>>>> Yuri wrote:
>>>>>>> Last news in http://gcc.gnu.org/java/ are dated March 2007.
>>>>>> Yes, we should update that.  There hasn't been a lot of  new gcj development,
>>>>>> but it is maintained.
>>>>>>
>>>>>>> Also I submitted few PRs a month ago and there is no response at all.
>>>>>> Which ones?
>>>>> How about this one:
>>>>>
>>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40816
>>>> I am still rather nervous about that one, as it's an ABI change.
>>> Point taken.
>>> In the long term this will prevent compilation of package such as VTK
>>> on debian on arch such as HPPA.
>> Really?  That's all rather amazing.  Is there no simple workaround?
>
> Compilation error can be found here:
>
> http://www.vtk.org/pipermail/vtk-developers/2009-June/006110.html
>
> And source:
>
> http://public.kitware.com/cgi-bin/viewcvs.cgi/Graphics/vtkJVMManager.h?view=annotate
>
> I really do not see how I can work around that. Simply removing one of
> the multiple signature is not a solution IMHO.

Yes, I see what's going on.

To Tom Tromey: This is an ABI change, but AFAICS the only time it makes
a difference is where it's already broken.  I'm tempted to make the change
now.

Andrew.
Comment 2 Mathieu Malaterre 2010-01-22 11:43:32 UTC
Any update ?

Thanks
Comment 3 Andrew Haley 2010-01-23 23:18:21 UTC
Subject: Re:  error: 'jvariant::jvariant(jbyte)' cannot be
 overloaded

On 01/22/2010 11:43 AM, mathieu dot malaterre at gmail dot com wrote:
> ------- Comment #2 from mathieu dot malaterre at gmail dot com  2010-01-22 11:43 -------
> Any update ?

No, I've just been cowardly.  Remind me next week and I'll commit the change.

Andrew.
Comment 4 Andrew Haley 2010-02-24 15:34:51 UTC
Subject: Bug 40816

Author: aph
Date: Wed Feb 24 15:34:19 2010
New Revision: 157047

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157047
Log:
2010-02-24  Andrew Haley  <aph@redhat.com>

        PR java/40816
        * include/jni_md.h: jboolean is an unsigned type.


Modified:
    trunk/libjava/ChangeLog
    trunk/libjava/include/jni_md.h

Comment 5 Andrew Haley 2010-09-28 14:05:59 UTC
.