aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@redhat.com>2001-03-21 15:50:29 -0800
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>2001-03-21 15:50:29 -0800
commit96c6f6286724d2cd495e0bf8c7f91e063d00322c (patch)
treeaf858a39ad83d13fcd0b7923918df646055fe5f2 /gcc
parent71cb92861565bf4bad31fc1b2db27546528eeaeb (diff)
downloadgcc-96c6f6286724d2cd495e0bf8c7f91e063d00322c.zip
gcc-96c6f6286724d2cd495e0bf8c7f91e063d00322c.tar.gz
gcc-96c6f6286724d2cd495e0bf8c7f91e063d00322c.tar.bz2
re PR java/2333 (ICE in mark_reference_fields)
2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com> * class.c (layout_class): Fixed push_super_field's second argument. Fixes PR java/2333. (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's too early to lay innerclasses out. (http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01582.html) From-SVN: r40719
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog7
-rw-r--r--gcc/java/class.c2
-rw-r--r--gcc/java/parse.y6
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index accbbc7..6a23f8e 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,10 @@
+2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
+
+ * class.c (layout_class): Fixed push_super_field's second
+ argument. Fixes PR java/2333.
+ (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
+ too early to lay innerclasses out.
+
2001-03-20 Tom Tromey <tromey@redhat.com>
* lex.c (java_read_unicode): Only accept leading `u's.
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 6deb46e..c99dbaa 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1693,7 +1693,7 @@ layout_class (this_class)
return;
}
if (TYPE_SIZE (this_class) == NULL_TREE)
- push_super_field (this_class, super_class);
+ push_super_field (this_class, maybe_super_class);
}
for (field = TYPE_FIELDS (this_class);
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 8d588f0..d1adac6 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -5277,7 +5277,11 @@ jdep_resolve_class (dep)
{
tree inner = TREE_TYPE (decl);
if (! CLASS_LOADED_P (inner))
- safe_layout_class (inner);
+ {
+ safe_layout_class (inner);
+ if (TYPE_SIZE (inner) == error_mark_node)
+ TYPE_SIZE (inner) = NULL_TREE;
+ }
check_inner_class_access (decl, JDEP_ENCLOSING (dep), JDEP_WFL (dep));
}
return decl;