diff options
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); |