diff options
author | Tom Tromey <tromey@redhat.com> | 2003-02-28 20:53:47 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-02-28 20:53:47 +0000 |
commit | 0ea05c0da385f546437e32c43512dc2565c504eb (patch) | |
tree | ff933323332bdbed9ede2133d881c80430e36a4c /gcc/java/class.c | |
parent | 8c108db21b23f8083867ff2cec09d9f0110258c2 (diff) | |
download | gcc-0ea05c0da385f546437e32c43512dc2565c504eb.zip gcc-0ea05c0da385f546437e32c43512dc2565c504eb.tar.gz gcc-0ea05c0da385f546437e32c43512dc2565c504eb.tar.bz2 |
re PR java/9695 (Inner class bug prevent GNU Classpath from compiling)
PR java/9695:
* class.c (maybe_layout_super_class): Always pass a WFL to
do_resolve_class.
* parse.y (do_resolve_class): Updated comment to explain
parameters.
From-SVN: r63584
Diffstat (limited to 'gcc/java/class.c')
-rw-r--r-- | gcc/java/class.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/java/class.c b/gcc/java/class.c index a58f604..f121f0e 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -1726,8 +1726,19 @@ maybe_layout_super_class (tree super_class, tree this_class) super_class = TREE_TYPE (super_class); else { + /* do_resolve_class expects an EXPR_WITH_FILE_LOCATION, so + we give it one. */ + tree this_wrap = NULL_TREE; + + if (this_class) + { + tree this_decl = TYPE_NAME (this_class); + this_wrap = build_expr_wfl (this_class, + DECL_SOURCE_FILE (this_decl), + DECL_SOURCE_LINE (this_decl), 0); + } super_class = do_resolve_class (NULL_TREE, /* FIXME? */ - super_class, NULL_TREE, this_class); + super_class, NULL_TREE, this_wrap); if (!super_class) return NULL_TREE; /* FIXME, NULL_TREE not checked by caller. */ super_class = TREE_TYPE (super_class); |