PATCH: [4.1 Regression]: java compiler generates wrong code on ia64

H. J. Lu hjl@lucon.org
Mon Apr 18 03:31:00 GMT 2005


On Sun, Apr 17, 2005 at 12:21:19PM -0700, Mark Mitchell wrote:
> H. J. Lu wrote:
> >Linkonce and weak functions are never local. 
> 
> > /* Only create aliases for local functions.  */
> >-  if (DECL_EXTERNAL (method))
> 
> If this code is testing for whether a function has internal linkage, 
> then the conditional should be "if (!TREE_PUBLIC (method))".  Your patch 
> is certainly not correct.
> 

If I use "if (!TREE_PUBLIC (method))", I got

/net/gnu-9/export/gnu/src/gcc-next/gcc/libjava/java/util/logging/Logger.java:68: error: ‘*.L_ZN4java4util7logging6Logger19getCallerStackFrameEv49()’ aliased to external symbol ‘
/net/gnu-9/export/gnu/src/gcc-next/gcc/libjava/java/util/logging/Logger.java:68: confused by earlier errors, bailing out

make_local_function_alias is introduced in

http://gcc.gnu.org/ml/java-patches/2004-q3/msg00618.html

Is there a testcase to show it is really needed? I'd like to run it
on ia32, x86_64 and ia64 to verify its usage.


H.J.



More information about the Java-patches mailing list