This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: cygwin failures - assertion "!(addr & FLAGS)" failed:
- From: Tom Tromey <tromey at redhat dot com>
- To: "Billinghurst, David (CRTS)" <David dot Billinghurst at riotinto dot com>
- Cc: <java at gcc dot gnu dot org>
- Date: 03 May 2002 14:30:33 -0600
- Subject: Re: cygwin failures - assertion "!(addr & FLAGS)" failed:
- References: <FAC87D7C874EAB46A847604DA4FD5A6402F81C@crtsmail.corp.riotinto.org>
- Reply-to: tromey at redhat dot com
>>>>> "David" == Billinghurst, David (CRTS) <David.Billinghurst@riotinto.com> writes:
David> At last a real bug in the cygwin libjava testsuite. Most of the
David> compilation tests pass, but all (that I could find) executable
David> tests fail with
David> assertion "!(addr & FLAGS)" failed: file "/usr/local/src/gcc3.1/libjava/java/lang/natObject.cc", line 772
My understanding is that we use the lowest 3 bits to keep some
information about the thin locks. If this assertion fails, it means
that we've found an object which isn't suitably aligned. I think this
can mean one of two things:
1. There is a bug in the allocator (unlikely), or
2. The compiler isn't properly aligning an object which it lays out
statically. For instance this could happen with some Class object
A bug along these lines was fixed pretty recently:
2002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* class.c (make_class_data): Set DECL_ALIGN on static class data,
for hash synchronization.
* expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
* decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
class_type_node.
If you already have this patch then I guess there's another such bug :-(
Tom