This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: gcj 4.3 regressions
- From: Andrew Haley <aph at redhat dot com>
- To: Marco Trudel <mtrudel at gmx dot ch>, GCC Java <java at gcc dot gnu dot org>, java-patches at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Wed, 24 Jan 2007 17:07:19 +0000
- Subject: Re: gcj 4.3 regressions
- References: <45B78227.1040103@gmx.ch> <17847.33943.608739.801056@zebedee.pink>
Andrew Haley writes:
> Marco Trudel writes:
>
> > I'm running into tons of "internal compiler error" when working with
> > some libs as I did with 4.2. Has there lately been some critical changes
> > or am I just the first one testing such things?
> >
> > Anyway, I randomly picked one out and traced it to that:
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30574
>
> OK, I'm looking. Everything I run was compiled with ecj, so I
> wouldn't have seen that problem.
Found it. Sun compiler creates a synthetic anonymous inner class
FailingClass$1 with a class attribute, "Synthetic", like this:
Attributes (count: 3):
Attribute "SourceFile", length:2, #4="FailingClass.java"
Attribute "Synthetic", length:0
Attribute "InnerClasses", length:10
inner: FailingClass$1 (anonymous), access flags: 0x8 static, outer class: FailingClass
ecj doesn't create this class. I don't know what this class is for.
Anyway, try this patch.
Andrew.
2007-01-24 Andrew Haley <aph@redhat.com>
* jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
Index: jcf-parse.c
===================================================================
--- jcf-parse.c (revision 121113)
+++ jcf-parse.c (working copy)
@@ -975,7 +975,7 @@
else if (current_field) \
FIELD_SYNTHETIC (current_field) = 1; \
else \
- CLASS_SYNTHETIC (current_class) = 1; \
+ TYPE_SYNTHETIC (current_class) = 1; \
}
#define HANDLE_GCJCOMPILED_ATTRIBUTE() \