Andrew Haley writes:
Andrew Haley writes:
> Thomas Fitzsimmons writes:
> > Hi,
> >
> >
gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_1-branch-java-merge-20060823 now
> > contains the trunk -> redhat/gcc-4_1-branch Java merge that I'd like
to see go
> > into FC6test3.
> >
> > libjava's "make check" passes except for the -O3 StackTrace2
tests:
> >
> > FAIL: StackTrace2 -O3 execution - source compiled test
> > FAIL: StackTrace2 -O3 execution - bytecode->native test
> >
> > but these tests also failed on redhat/gcc-4_1-branch before my 2006-08-23
merge.
> > Andrew, can you take a look at what's causing these failures?
>
> I'm having a lot of trouble duplicating this failure. You should give
> me access to a box on which this test fails.
Got it now.
FAIL: StackTrace2 -O3 execution - source compiled test
UNTESTED: StackTrace2 -O3 output - source compiled test
Forget it, it's a buggy testcase. In here:
public static void main(String[] args)
{
try
{
a();
}
catch (Exception x)
{
StackTraceElement[] trace = x.getStackTrace();
checkTrace(trace);
}
}
static void a()
{
new Inner();
}
a() gets inlined into main(), so the stacktrace is only three elements
in size:
[Ljava.lang.StackTraceElement;@2aaaae240f78
{
java.lang.StackTraceElement@2aaaaab0b6c0
{
boolean isNative = false,
java.lang.String fileName = "StackTrace2.java",
java.lang.String methodName = "doCrash",
java.lang.String declaringClass = "StackTrace2$Inner",
int lineNumber = 33,
}, java.lang.StackTraceElement@2aaaaab0b690
{
boolean isNative = false,
java.lang.String fileName = "StackTrace2.java",
java.lang.String methodName = "<init>",
java.lang.String declaringClass = "StackTrace2$Inner",
int lineNumber = 28,
}, java.lang.StackTraceElement@2aaaaab0b660
{
boolean isNative = false,
java.lang.String fileName = "StackTrace2.java",
java.lang.String methodName = "main",
java.lang.String declaringClass = "StackTrace2",
int lineNumber = 21,
},
}
It's safe to inline methods within the same class -- they can't have
different protection domains, for example.
Andrew.