aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2003-01-30 17:15:36 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-01-30 17:15:36 +0000
commit7e278bae4f763445abe8b6c79ae684d7915eb939 (patch)
tree1840a719f7687932985e166bac260846e3623679 /gcc
parent7429b411c170317ab86705d4c14b0f7c10a2943b (diff)
downloadgcc-7e278bae4f763445abe8b6c79ae684d7915eb939.zip
gcc-7e278bae4f763445abe8b6c79ae684d7915eb939.tar.gz
gcc-7e278bae4f763445abe8b6c79ae684d7915eb939.tar.bz2
jcf-parse.c (read_class): Update identifier's class value if it changed during parsing.
* jcf-parse.c (read_class): Update identifier's class value if it changed during parsing. From-SVN: r62149
Diffstat (limited to 'gcc')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/jcf-parse.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 3b56a3a..4afcc94 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-30 Tom Tromey <tromey@redhat.com>
+
+ * jcf-parse.c (read_class): Update identifier's class value if it
+ changed during parsing.
+
2003-01-30 Loren James Rittle <ljrittle@acm.org>
* Make-lang.in (po-generated): Find the targets in $(parsedir).
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index 2f03202..20dc3ff 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -516,6 +516,10 @@ read_class (tree name)
read_zip_member(current_jcf,
current_jcf->zipd, current_jcf->zipd->zipf);
jcf_parse (current_jcf);
+ /* Parsing might change the class, in which case we have to
+ put it back where we found it. */
+ if (current_class != class && icv != NULL_TREE)
+ TREE_TYPE (icv) = current_class;
class = current_class;
java_pop_parser_context (0);
java_parser_context_restore_global ();