From 9980cc4b9999693f1c90f3bc3d3c1d15e7761ff4 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Wed, 25 Feb 2004 21:30:01 -0800 Subject: [PATCH] parse.y (build_assertion): If we're in an inner class, create the class$ helper routine in the outer class. * parse.y (build_assertion): If we're in an inner class, create the class$ helper routine in the outer class. From-SVN: r78489 --- gcc/java/ChangeLog | 5 +++++ gcc/java/parse.y | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a0568c7084b..a1a368508ce 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2004-02-25 Per Bothner + + * parse.y (build_assertion): If we're in an inner class, create the + class$ helper routine in the outer class. + 2004-02-19 Richard Henderson * parse.y (switch_label): Use make_node for DEFAULT_EXPR. diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 72cc9f3d103..8e419a55d77 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -15301,6 +15301,10 @@ build_assertion (int location, tree condition, tree value) { tree field, classdollar, id, call; tree class_type = TREE_TYPE (klass); + tree outer_class = klass; + while (INNER_CLASS_DECL_P (outer_class)) + outer_class = DECL_CONTEXT (outer_class); + outer_class = TREE_TYPE (outer_class); field = add_field (class_type, get_identifier ("$assertionsDisabled"), @@ -15309,9 +15313,10 @@ build_assertion (int location, tree condition, tree value) MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC (field); FIELD_SYNTHETIC (field) = 1; - if (!TYPE_DOT_CLASS (class_type)) - build_dot_class_method (class_type); - classdollar = build_dot_class_method_invocation (class_type, class_type); + if (!TYPE_DOT_CLASS (outer_class)) + build_dot_class_method (outer_class); + classdollar + = build_dot_class_method_invocation (outer_class, class_type); /* Call CLASS.desiredAssertionStatus(). */ id = build_wfl_node (get_identifier ("desiredAssertionStatus")); -- 2.30.2