diff options
| author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-27 17:30:06 +0000 |
|---|---|---|
| committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-27 17:30:06 +0000 |
| commit | 0b6bbaf125bde345724352f1d7d1aba8b47d0ee2 (patch) | |
| tree | a322c1cab85416d0275cf53500e49752e214bcc5 | |
| parent | ef4fc2b2f48049f043b10229a700a24efa181b81 (diff) | |
| download | ppe42-gcc-0b6bbaf125bde345724352f1d7d1aba8b47d0ee2.tar.gz ppe42-gcc-0b6bbaf125bde345724352f1d7d1aba8b47d0ee2.zip | |
2004-01-27 Andrew Haley <aph@redhat.com>
java/13273
* parse.y (check_interface_throws_clauses): Make sure class_decl
has been loaded.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76732 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/java/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/java/parse.y | 14 |
2 files changed, 18 insertions, 2 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 5d9ae79d2e1..c048dfada2c 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2004-01-27 Andrew Haley <aph@redhat.com> + + java/13273 + * parse.y (check_interface_throws_clauses): Make sure class_decl + has been loaded. + 2004-01-22 Jeff Sturm <jsturm@one-point.com> PR java/13733 diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 507e9583e86..620973745b9 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -6485,10 +6485,20 @@ check_interface_throws_clauses (tree check_class_decl, tree class_decl) { for (; class_decl != NULL_TREE; class_decl = CLASSTYPE_SUPER (class_decl)) { - tree bases = TYPE_BINFO_BASETYPES (class_decl); - int iface_len = TREE_VEC_LENGTH (bases) - 1; + tree bases; + int iface_len; int i; + if (! CLASS_LOADED_P (class_decl)) + { + if (CLASS_FROM_SOURCE_P (class_decl)) + safe_layout_class (class_decl); + else + load_class (class_decl, 1); + } + + bases = TYPE_BINFO_BASETYPES (class_decl); + iface_len = TREE_VEC_LENGTH (bases) - 1; for (i = iface_len; i > 0; --i) { tree interface = BINFO_TYPE (TREE_VEC_ELT (bases, i)); |

