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