[java, 3.0.1]: BUG: Unresolved symbols with -O3 and higher

Jeff Sturm jsturm@one-point.com
Tue Jul 24 10:22:00 GMT 2001


On 2001年7月24日, Manfred Hollstein wrote:
> Funnily, the methods in question are used _and_ defined (in Java source
> code, but obviously not emitted) in the corresponding .java file. Using
> "-O2" (ie. no automatic function inlining) doesn't show this problem.

"-fkeep-inline-functions" should be a viable workaround.
I'll argue this should be the default for gcj, due to reflection. In fact
the behavior of the program below changes when compiled with/without
-fkeep-inline-functions:
import java.lang.reflect.Method;
public class Junk {
 private void junk() {
 System.out.println("junk");
 }
 public static void main(String[] args) {
 try {
 Junk junk = new Junk();
 Method[] meths = junk.getClass().getDeclaredMethods();
 for (int n = 0; n < meths.length; n++)
 System.out.println(meths[n]);
 } catch (Throwable t) {
 t.printStackTrace();
 }
 }
}


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /