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
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).