public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "terra at gnome dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c/112614] New: Compile-time float-to-_Decimal64 fails for -NAN Date: Sun, 19 Nov 2023 00:37:10 +0000 [thread overview] Message-ID: <bug-112614-4@http.gcc.gnu.org/bugzilla/> (raw) 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")); }
next reply other threads:[~2023-11-19 0:37 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-11-19 0:37 terra at gnome dot org [this message] 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-112614-4@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).