1 GCC gcc-3_3-branch regressions, 1 new, with your patch on 2003-04-28T06:15:03Z.
Geoffrey Keating
geoffk@apple.com
Mon Apr 28 18:20:00 GMT 2003
On Monday, April 28, 2003, at 10:53 AM, Mark Mitchell wrote:
> On Mon, 2003-04-28 at 03:53, GCC regression checker wrote:
>> With your recent patch, GCC gcc-3_3-branch has some regression test
>> failures,
>> which used to pass. There are 1 new failures, and 0
>> failures that existed before and after that patch; 1 failures
>> have been fixed.
>>
>> The new failures are:
>> native g++.sum g++.pt/deduct5.C
>
> How do I find the DejaGNU output for this test? (I would like to see
> whether this was a compile-time error/run-time error, etc.)
Eventually, it'll be on a web page, but I haven't gotten that organized
yet. So, I can copy & paste it:
spawn /Users/regress/tbox/native/build/gcc/testsuite/../g++
-B/Users/regress/tbo
x/native/build/gcc/testsuite/../
/Users/regress/tbox/cvs-gcc/gcc/gcc/testsuite/g
++.old-deja/g++.pt/deduct5.C -nostdinc++
-I/Users/regress/tbox/native/build/powe
rpc-apple-darwin6.3/libstdc++-v3/include/powerpc-apple-darwin6.3
-I/Users/regres
s/tbox/native/build/powerpc-apple-darwin6.3/libstdc++-v3/include
-I/Users/regres
s/tbox/cvs-gcc/gcc/libstdc++-v3/libsupc++
-I/Users/regress/tbox/cvs-gcc/gcc/libs
tdc++-v3/libio
-I/Users/regress/tbox/cvs-gcc/gcc/libstdc++-v3/include/backward -
I/Users/regress/tbox/cvs-gcc/gcc/libstdc++-v3/testsuite
-fmessage-length=0 -ansi
-pedantic-errors -Wno-long-long
-L/Users/regress/tbox/native/build/powerpc-appl
e-darwin6.3/./libstdc++-v3/src/.libs
-L/Users/regress/tbox/native/build/powerpc-
apple-darwin6.3/./libiberty -lstdc++ -lm -o
/Users/regress/tbox/native/build/gcc
/testsuite/g++-pt-deduct5-C.exe
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 356.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 352.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 336.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 332.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 328.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 324.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 240.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 236.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 220.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 216.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 212.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 208.
compiler exited with status 1
output is:
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 356.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 352.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 336.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 332.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 328.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 324.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 240.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 236.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 220.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 216.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 212.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 208.
FAIL: g++.pt/deduct5.C (test for excess errors)
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 356.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 352.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 336.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 332.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 328.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L3$pb"} @ file
address 324.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 240.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 236.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 220.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 216.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 212.
/tmp/ccIEaJtz.s:unknown:Can't emit reloc {- symbol "L2$pb"} @ file
address 208.
XFAIL: g++.pt/deduct5.C Execution test
A newer assembler gives a somewhat more informative error message:
/Network/Servers/cauchy/homes/thorin/gkeating/t2.s:5:non-relocatable
subtraction expression, "_ZZ3FooIA1_iEiPKT_E5count" minus "L3$pb"
/Network/Servers/cauchy/homes/thorin/gkeating/t2.s:5:symbol:
"_ZZ3FooIA1_iEiPKT_E5count" can't be undefined in a subtraction
expression
I think the fundamental problem is that the compiler's using .comm for
the 'count' static variable, which would be OK but then it's not using
the GOT (or what passes for it on Darwin). If you write 'int x;' in C,
you get an access like:
bcl 20,31,L1$pb
L1$pb:
...
addis r9,r10,ha16(L_x$non_lazy_ptr-L1$pb)
lwz r9,lo16(L_x$non_lazy_ptr-L1$pb)(r9)
lwz r0,0(r9)
...
.comm _x,4
.data
.non_lazy_symbol_pointer
L_x$non_lazy_ptr:
.indirect_symbol _x
.long 0
but for deduct-5.C, there's:
bcl 20,31,L2$pb
L2$pb:
...
addis r11,r31,ha16(_ZZ3FooIiEiPKT_E5count-L2$pb)
la r11,lo16(_ZZ3FooIiEiPKT_E5count-L2$pb)(r11)
...
.comm _ZZ3FooIA1_iEiPKT_E5count,4
without any indirection. I bet it's some kind of timing problem
between when the flags get set in the frontend and when the backend
gets to see them.
--
Geoff Keating <geoffk@apple.com>
More information about the Gcc-regression
mailing list