[Bug target/26226] New: FAIL: gcc.c-torture/execute/ieee/20010226-1.c execution

danglin at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Feb 11 20:09:00 GMT 2006


PASS: gcc.c-torture/execute/ieee/20010114-2.c execution,  -Os
Executing on host: /home/gnu/gcc-3.4/objdir/gcc/xgcc
-B/home/gnu/gcc-3.4/objdir/
gcc/ /xxx/gnu/gcc-3.4/gcc/gcc/testsuite/gcc.c-torture/execute/ieee/20010226-1.c
 -w  -O0  -fno-show-column  -lm   -o
/xxx/gnu/gcc-3.4/objdir/gcc/testsuite/20010
226-1.x0    (timeout = 300)
PASS: gcc.c-torture/execute/ieee/20010226-1.c compilation,  -O0
Setting LD_LIBRARY_PATH to
:/xxx/gnu/gcc-3.4/objdir/gcc::/xxx/gnu/gcc-3.4/objdir
/gcc
FAIL: gcc.c-torture/execute/ieee/20010226-1.c execution,  -O0

# gdb 20010226-1.x0
GNU gdb 2004-01-09-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "hppa64-hp-hpux11.00"...
(gdb) r
Starting program: /home/gnu/gcc-3.4/objdir/gcc/testsuite/20010226-1.x0

Program received signal SIGSEGV, Segmentation fault.
0x4000000000002c04 in _U_Qfcnvfxt_quad_to_udbl (a=Unhandled dwarf expression
opcode
) at quadlib.c:210
210       u = _U_Qfcnvfxt_quad_to_quad(a);
(gdb) disass 0x4000000000002bf4 0x4000000000002c14
Dump of assembler code from 0x4000000000002bf4 to 0x4000000000002c14:
0x4000000000002bf4 <_U_Qfcnvfxt_quad_to_udbl+28>:       std r4,-80(sp)
0x4000000000002bf8 <_U_Qfcnvfxt_quad_to_udbl+32>:       addil 0,dp,%r1
0x4000000000002bfc <_U_Qfcnvfxt_quad_to_udbl+36>:       ldd 68(r1),r1
0x4000000000002c00 <_U_Qfcnvfxt_quad_to_udbl+40>:       ldd 0(,r1),r1
0x4000000000002c04 <_U_Qfcnvfxt_quad_to_udbl+44>:       ldd 10(r1),rp
0x4000000000002c08 <_U_Qfcnvfxt_quad_to_udbl+48>:       bve,l (rp),%r2
0x4000000000002c0c <_U_Qfcnvfxt_quad_to_udbl+52>:       ldd 18(r1),dp
0x4000000000002c10 <_U_Qfcnvfxt_quad_to_udbl+56>:       ldd -e0(sp),rp
End of assembler dump.
(gdb) p/x $r1
$1 = 0x0
(gdb) break *0x4000000000002c00
Breakpoint 1 at 0x4000000000002c00: file quadlib.c, line 210.
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/gnu/gcc-3.4/objdir/gcc/testsuite/20010226-1.x0

Breakpoint 1, 0x4000000000002c00 in _U_Qfcnvfxt_quad_to_udbl (a=Unhandled dwarf
expression opcode
)
    at quadlib.c:210
210       u = _U_Qfcnvfxt_quad_to_quad(a);
(gdb) p/x $r1
$1 = 0x80000001000000a0

# objdump -R 20010226-1.x0

20010226-1.x0:     file format elf64-hppa

DYNAMIC RELOCATION RECORDS
OFFSET           TYPE              VALUE
8000000100000338 R_PARISC_DIR64    _SYSTEM_ID
8000000100000378 R_PARISC_FPTR64   _start
8000000100000380 R_PARISC_DIR64    __argc
8000000100000388 R_PARISC_DIR64    __argv
8000000100000390 R_PARISC_DIR64    _CPU_REVISION
8000000100000398 R_PARISC_DIR64    _FPU_MODEL
80000001000003a0 R_PARISC_DIR64    _FPU_REVISION
80000001000003a8 R_PARISC_DIR64    _CPU_KEYBITS_1
80000001000003b0 R_PARISC_DIR64    _environ
80000001000003b8 R_PARISC_DIR64    __envp
80000001000003c0 R_PARISC_DIR64    __load_info
80000001000003c8 R_PARISC_DIR64    __sysvec
80000001000003d0 R_PARISC_DIR64    __scall_entry_table_addr
80000001000003d8 R_PARISC_DIR64    __tls_size
8000000100000370 R_PARISC_FPTR64   __text_seg+0x0000000000001830
8000000100000100 R_PARISC_FPTR64   __text_seg+0x0000000000001840
8000000100000108 R_PARISC_FPTR64   __text_seg+0x0000000000001850
8000000100000110 R_PARISC_FPTR64   __text_seg+0x0000000000001840
8000000100000118 R_PARISC_FPTR64   __text_seg+0x0000000000001850
8000000100000120 R_PARISC_FPTR64   __text_seg+0x0000000000001860
8000000100000128 R_PARISC_FPTR64   __text_seg+0x0000000000001860
8000000100000298 R_PARISC_FPTR64   __text_seg+0x00000000000018b0
80000001000002a0 R_PARISC_FPTR64   __text_seg+0x00000000000018d0
80000001000002a8 R_PARISC_FPTR64   _Jv_RegisterClasses
80000001000002b0 R_PARISC_FPTR64   __text_seg+0x0000000000001870
80000001000002b8 R_PARISC_FPTR64   __text_seg+0x0000000000001880
80000001000002c0 R_PARISC_FPTR64   __text_seg+0x0000000000001890
80000001000000b0 R_PARISC_FPTR64   _U_Qfcnvfxt_quad_to_sgl
80000001000000b8 R_PARISC_FPTR64   _U_Qfcmp
80000001000000c0 R_PARISC_FPTR64   abort
80000001000000c8 R_PARISC_FPTR64   strlen
80000001000000d0 R_PARISC_FPTR64   malloc
80000001000000d8 R_PARISC_FPTR64   free
80000001000002d0 R_PARISC_IPLT     __sys_atexit
80000001000002e0 R_PARISC_IPLT     _write_sys
80000001000002f0 R_PARISC_IPLT     exit
8000000100000300 R_PARISC_IPLT     abort
8000000100000310 R_PARISC_IPLT     _U_Qfdiv
8000000100000320 R_PARISC_IPLT     _U_Qfmpy

_U_Qfcnvfxt_quad_to_quad isn't in the list of dynamic relocations.

We have in quadlib.o:

RELOCATION RECORDS FOR [.data]:
OFFSET           TYPE              VALUE
0000000000000000 R_PARISC_FPTR64   _U_Qfcnvfxt_quad_to_quad
0000000000000008 R_PARISC_FPTR64   _U_Qfcnvfxt_quad_to_dbl
0000000000000010 R_PARISC_FPTR64   _U_Qfcnvfxt_quad_to_sgl
0000000000000018 R_PARISC_FPTR64   _U_Qfcmp

I'm fairly certain that this is an HP linker bug introduced sometime
after PHSS_30965 and PHSS_30966 on HP-UX 11.00 and 11.11, respectively.
The current most recent patches, PHSS_33032 and PHSS_33033, have this
bug.

The bug affects many test results.  See
http://gcc.gnu.org/ml/gcc-testresults/2006-02/msg00521.html
versus
http://gcc.gnu.org/ml/gcc-testresults/2006-02/msg00558.html


-- 
           Summary: FAIL: gcc.c-torture/execute/ieee/20010226-1.c execution
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11*
  GCC host triplet: hppa64-hp-hpux11*
GCC target triplet: hppa64-hp-hpux11*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26226



More information about the Gcc-bugs mailing list