https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81120

            Bug ID: 81120
           Summary: __builtin_nansl ("") generates quiet NaN
           Product: gcc
           Version: 6.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: danglin at gcc dot gnu.org
  Target Milestone: ---
              Host: hppa-unknown-linux-gnu
            Target: hppa-unknown-linux-gnu
             Build: hppa-unknown-linux-gnu

The following code fails because __builtin_nansl generates a quiet NaN:

extern int __issignaling (double);
int
main (void)
{
  double sNaN = __builtin_nansl ("");
  if (!__issignaling(sNaN))
    return 1;
  return 0;
}

.LC0:
        .word   2146959359
        .word   -1

(gdb) p/x 2146959359
$1 = 0x7ff7ffff

This is a quiet NaN on PA-RISC.

__builtin_nans() correctly generates a signaling NaN.

long double and double are the same on hppa-linux.

The problem causes several glibc testsuite failures.

Reply via email to