This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
egcs-112 iA32 -funroll-loops bug
- To: egcs-bugs at egcs dot cygnus dot com
- Subject: egcs-112 iA32 -funroll-loops bug
- From: Kurt Garloff <kurt at garloff dot de>
- Date: Sun, 30 May 1999 20:06:51 +0200
Hi,
here is an egcs-1.1.2 problem:
/tmp/cc4KBhW1.s: Assembler messages:
/tmp/cc4KBhW1.s:1743: Fatal error: Symbol .LEHB4218 already defined.
.size TBCI::TMatrix<unsigned int>::operator==(TBCI::Matrix<unsigned int> const &),.Lfe5-TBCI::TMatrix<unsigned int>::operator==(TBCI::Matrix<unsigned int> const &)
.align 4
.LPR42:
movl (%esp),%ebx
ret
.globl TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &)
.type TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &),@function
TBCI::TMatrix<unsigned int>::operator==(TBCI::TSMatrix<unsigned int> &):
[...]
pushl %esi
.LEHB4218:
.LEHE4218:
jmp .L4335
.align 4
.L4308:
movl -48(%ebp),%ecx
addl $4,%edx
addl $4,%ecx
cmpl -44(%ebp),%edx
jae .L4178
.align 4
.L4183:
movl -36(%ebp),%eax
imull (%ecx),%eax
cmpl %eax,(%edx)
jne .L4336
.LEHB4218:
.LEHE4218:
movl -36(%ebp),%eax
imull 4(%ecx),%eax
cmpl %eax,4(%edx)
je .L4326
.L4336:
movl 12(%ebp),%esi
cmpb $0,28(%esi)
je .L4328
cmpl $0,4(%esi)
je .L4328
cmpl $0,-40(%ebp)
je .L4329
movl -48(%ebp),%edi
pushl %edi
.L4335:
call __builtin_vec_delete@PLT
addl $4,%esp
.L4329:
movl 12(%ebp),%esi
movl $0,(%esi)
movl 16(%esi),%eax
testl %eax,%eax
je .L4330
pushl %eax
call __builtin_vec_delete@PLT
addl $4,%esp
.L4330:
movl 12(%ebp),%edi
movl $0,16(%edi)
.L4328:
.LEHB4218:
cmpl $0,-20(%ebp)
je .L4333
movl -24(%ebp),%eax
testl %eax,%eax
je .L4331
pushl %eax
call __builtin_vec_delete@PLT
addl $4,%esp
.L4331:
movl $0,-24(%ebp)
movl -8(%ebp),%eax
testl %eax,%eax
je .L4332
pushl %eax
call __builtin_vec_delete@PLT
.L4332:
movl $0,-8(%ebp)
.L4333:
.LEHE4218:
xorl %eax,%eax
jmp .L4304
.LEHB4218 and .LEHE4218 are defined three times!
Here is how to reproduce it:
Download the numlib-1.9.97.tar.gz from
http://pebbles.e-technik.uni-dortmund.de/numlib/numlib/numlib-1.9.97.tar.gz,
go into the lina directory and build the library by typing
make OPT=1 CC="gcc -V egcs-2.91.66"
The bug will show on compilation of matlibuint.po
This only happens on ix86 with -funroll-loops.
(Linux-2.2.9, glibc-2.0.7, egcs-1.1.2)
On alpha (DUX4.0d), everything is fine.
Removing -funroll-loops on ix86 also results in successful compilation.
Any ideas?
--
Dipl.Phys. Kurt Garloff <kurt@garloff.de> [Wuppertal, FRG]
Garloff Linux System Development [Linux-ix86,-axp, DUX]
Plasma physics, high perf. computing [Linux SCSI driver: DC390]
PGP key: see mailheader / key servers
PGP signature