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
This commit is contained in:
Ranjit Mathew 2005-03-09 19:04:54 +00:00 committed by Ranjit Mathew
parent 02bab9db99
commit 9e1af876ec
2 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,10 @@
2005-03-08 Julian Brown <julian@codesourcery.com>
2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
PR java/20338
* decl.c (finish_method): Emit _Jv_InitClass for private static
methods inside inner classes as well.
2005-03-08 Julian Brown <julian@codesourcery.com>
* Revert patch from 2005-03-08 for causing bootstrap failure on
ppc-darwin.

View File

@ -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))))
{