From: Per Bothner Date: Thu, 26 Feb 2004 05:30:01 +0000 (-0800) Subject: parse.y (build_assertion): If we're in an inner class, create the class$ helper routi... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9980cc4b9999693f1c90f3bc3d3c1d15e7761ff4;p=gcc.git 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 --- 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"));