public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/112614] New: Compile-time float-to-_Decimal64 fails for -NAN
@ 2023-11-19  0:37 terra at gnome dot org
  2023-11-19 21:46 ` [Bug middle-end/112614] " pinskia at gcc dot gnu.org
  2023-11-20 21:07 ` joseph at codesourcery dot com
  0 siblings, 2 replies; 3+ messages in thread
From: terra at gnome dot org @ 2023-11-19  0:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 112614
           Summary: Compile-time float-to-_Decimal64 fails for -NAN
           Product: gcc
           Version: 11.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: terra at gnome dot org
  Target Milestone: ---

Created attachment 56636
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56636&action=edit
Preprocessed source code

It looks like compile-time conversion of -NAN and -(double)NAN to _Decimal64
fails.  Runtime conversion seems ok.  -INFINITY is ok.

Tentatively blaming the C front end.

$ gcc -Wall -O2 d64nansign.c
$ ./a.out 
Sign bit set as expected
Sign bit set as expected
Sign bit not set as expected
Sign bit not set as expected
Sign bit set as expected
Sign bit set as expected

Target: x86_64-linux-gnu


#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <assert.h>
#include <string.h>
#include <math.h>

static void
test (_Decimal64 x)
{
  uint64_t u;
  assert (sizeof (x) == sizeof (u));
  memcpy (&u, &x, sizeof(x));
  if (u >> 63) {
    printf ("Sign bit set as expected\n");
  } else {
    printf ("Sign bit not set as expected\n");
  }
}


int
main (int argc, char **argv)
{
  // compile-time
  test (-(_Decimal64)(NAN));
  test (-(_Decimal64)(NAN));
  test ((_Decimal64)(-NAN));   // Fails
  test ((_Decimal64)(-(double)NAN));   // Fails

  // runtime
  test (atof("-nan"));
  test (-atof("nan"));
}

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug middle-end/112614] Compile-time float-to-_Decimal64 fails for -NAN
  2023-11-19  0:37 [Bug c/112614] New: Compile-time float-to-_Decimal64 fails for -NAN terra at gnome dot org
@ 2023-11-19 21:46 ` pinskia at gcc dot gnu.org
  2023-11-20 21:07 ` joseph at codesourcery dot com
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-11-19 21:46 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2023-11-19
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed, not a regression.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug middle-end/112614] Compile-time float-to-_Decimal64 fails for -NAN
  2023-11-19  0:37 [Bug c/112614] New: Compile-time float-to-_Decimal64 fails for -NAN terra at gnome dot org
  2023-11-19 21:46 ` [Bug middle-end/112614] " pinskia at gcc dot gnu.org
@ 2023-11-20 21:07 ` joseph at codesourcery dot com
  1 sibling, 0 replies; 3+ messages in thread
From: joseph at codesourcery dot com @ 2023-11-20 21:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
The sign of a NaN isn't specified for conversions, only for a few 
operations such as absolute value, negation, copysign.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-11-20 21:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-19  0:37 [Bug c/112614] New: Compile-time float-to-_Decimal64 fails for -NAN terra at gnome dot org
2023-11-19 21:46 ` [Bug middle-end/112614] " pinskia at gcc dot gnu.org
2023-11-20 21:07 ` joseph at codesourcery dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).