From 9e1af876ec17db808d3a1d2ace85b7734b0fca2c Mon Sep 17 00:00:00 2001 From: Ranjit Mathew Date: Wed, 9 Mar 2005 19:04:54 +0000 Subject: [PATCH] re PR java/20338 (Program compiled with gcj crashes when accessing private static method from nested class) PR java/20338 * decl.c (finish_method): Emit _Jv_InitClass for private static methods inside inner classes as well. From-SVN: r96200 --- gcc/java/ChangeLog | 7 ++++++- gcc/java/decl.c | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 698878de596..30d033de457 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,5 +1,10 @@ -2005-03-08 Julian Brown +2005-03-09 Ranjit Mathew + + PR java/20338 + * decl.c (finish_method): Emit _Jv_InitClass for private static + methods inside inner classes as well. +2005-03-08 Julian Brown * Revert patch from 2005-03-08 for causing bootstrap failure on ppc-darwin. diff --git a/gcc/java/decl.c b/gcc/java/decl.c index b7aa61650d3..720b6322c99 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -2038,7 +2038,9 @@ finish_method (tree fndecl) /* Prepend class initialization for static methods reachable from other classes. */ - if (METHOD_STATIC (fndecl) && ! METHOD_PRIVATE (fndecl) + if (METHOD_STATIC (fndecl) + && (! METHOD_PRIVATE (fndecl) + || INNER_CLASS_P (DECL_CONTEXT (fndecl))) && ! DECL_CLINIT_P (fndecl) && ! CLASS_INTERFACE (TYPE_NAME (DECL_CONTEXT (fndecl)))) { -- 2.30.2