This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/23369] New: [4.0.x regression] Generates wrong code for funcptr comparison
- From: "tausq at debian dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Aug 2005 02:50:30 -0000
- Subject: [Bug rtl-optimization/23369] New: [4.0.x regression] Generates wrong code for funcptr comparison
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Compiling the attached testcase with gcc -O2 -S signals.c, the generated asm
contains:
.loc 1 51 0
bl __canonicalize_funcptr_for_compare,%r2
ldo -2(%r7),%r26
ldi -4,%r26
bl __canonicalize_funcptr_for_compare,%r2
copy %r28,%r4
.loc 1 52 0
.loc 1 51 0
comb,>>= %r28,%r4,.L15
ldi 0,%r28
"old" is assigned to %r7. Why is it subtracting 2 from it before passing it to
__cffc?
gcc-3.x does not have this problem.
This testcase was extracted from signals.c from glibc/linuxthreads, based on our
investigation of Debian BTS bug #321785
--
Summary: [4.0.x regression] Generates wrong code for funcptr
comparison
Product: gcc
Version: 4.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tausq at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: hppa-unknown-linux
GCC host triplet: hppa-unknown-linux
GCC target triplet: hppa-unknown-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23369