Bug 13528 - make[1]: *** [check-gnat] Error 136
Summary: make[1]: *** [check-gnat] Error 136
Status: RESOLVED DUPLICATE of bug 13408
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 3.4.0
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-12-31 02:35 UTC by John David Anglin
Modified: 2005-07-23 22:49 UTC (History)
1 user (show)

See Also:
Host: hppa2.0-hp-hpux11.00
Target: hppa2.0-hp-hpux11.00
Build: hppa2.0-hp-hpux11.00
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John David Anglin 2003-12-31 02:35:28 UTC
The acats testsuite dies running cxg2014.  The acats.log contains the following:

...
splitting /xxx/gnu/gcc-3.3/objdir/gcc/testsuite/ada/acats/tests/cxg/cxg2014.a in
to:
   cxg2014.adb
BUILD cxg2014.adb
RUN cxg2014

The cxg2014.log file contains:

...
   * CXG2014 sinh(-1) actual: -7.49999999999999632E-01 expected:
                -1.17520119364380146E+00 difference:
                4.25201193643801825E-01 max err:
                1.01932454980493402E-18.
/xxx/gnu/gcc-3.3/gcc/gcc/testsuite/ada/acats/run_all.sh: 25902 Floating exceptio
n(coredump)

Running cxg2014 under gdb:

(gdb) r
Starting program: /xxx/gnu/gcc-3.3/objdir/gcc/testsuite/ada/acats/tests/cxg/
cxg2014/cxg2014

,.,. CXG2014 ACATS 2.5 03-12-30 19:36:06
---- CXG2014 Check the accuracy of the SINH and COSH functions.
...
Program received signal SIGFPE, Arithmetic exception.
0x7af5c0b0 in _U_force_trap () from /usr/lib/libc.2
(gdb) bt
#0  0x7af5c0b0 in _U_force_trap () from /usr/lib/libc.2
#1  0x7af5e0dc in _U_Qfcnvfxt_quad_to_sgl () from /usr/lib/libc.2
#2  0x000319e4 in 
cxg2014__a_long_float_check__elementary_functions__exp_strictXn___65 ()
#3  0x00032b6c in cxg2014__a_long_float_check__elementary_functions__sinhXn___72 
()
#4  0x0003561c in cxg2014__a_long_float_check__identity_1_test___80 ()
#5  0x00036a44 in cxg2014__a_long_float_check__do_test___89 ()
#6  0x00036c08 in _ada_cxg2014 ()
#7  0x00008b4c in main ()

Putting a break on the call to _U_Qfcnvfxt_quad_to_sgl, I find that
the SIGFPE occurs when the long double being converted is a nan.

(gdb) p *(long double *)$r26
$1 = nan(0xf000000000000)

The gdb printout seems bogus:
(gdb) printf "0x%llx\n", *(long long *)$r26
0x7fff000000000000
(gdb) printf "0x%llx\n", *(long long *)($r26+8)
0x0

So, the passed value is infinity.  The conversion being
performed is a quad floating to single (32-bit) integer.

It's my understanding that we get an unimplemented exception
when Inf is converted to an integer format.
Comment 1 Arnaud Charlet 2004-01-06 14:58:29 UTC
Closing, as this is a duplicate of PR 13408 (opened by John as well :-)

Arno

*** This bug has been marked as a duplicate of 13408 ***