[PR c++/33887] Fix incorrect use of jboolean in link.cc

Alexandre Oliva aoliva@redhat.com
Fri Jan 18 19:10:00 GMT 2008


We've been lucky for a while, because C++ doesn't reduce types
narrower than registers to their native width after every operation,
or ever.  This enabled jboolean to behave like an unsigned byte,
rather than like a single bit, in the use in link.cc.

As we experimented transitioning C++ to a reduce-after-every-operation
mode, as a possible fix for PR c++/33887, this thinko in libjava got
exposed, because, with the change, the jboolean gets truncated to a
single bit.  So, when a superclass has an even number of interfaces,
it remains unchanged, and when two superclasses both have odd numbers
of interfaces, they cancel out.  Oops.

Fixed with the patch below, that Tom Tromey pre-approved.  I'll check
it in as soon as my re-testing is completed.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc43-pr33887-java.patch
Type: text/x-patch
Size: 1151 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java-patches/attachments/20080118/af0deef5/attachment.bin>
-------------- next part --------------

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member         http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


More information about the Java-patches mailing list