This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/15720] New: stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__
- From: "bugdal at aerifal dot cx" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sat, 06 Jul 2013 04:09:53 +0000
- Subject: [Bug libc/15720] New: stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=15720
Bug ID: 15720
Summary: stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: libc
Assignee: unassigned at sourceware dot org
Reporter: bugdal at aerifal dot cx
CC: drepper.fsp at gmail dot com
Based on the comment in stdc-predef.h, somebody apparently assumed
__STDC_IEC_559_COMPLEX__ means the implementation supports complex arithmetic.
This is not what it means. Complex arithmetic is mandatory in C99, and in C11
implementations that lack complex arithmetic must define __STDC_NO_COMPLEX__.
The meaning of __STDC_IEC_559_COMPLEX__ is that the implementation conforms to
Annex G, which among other things, requires the existence of the
otherwise-optional _Imaginary types which GCC does not support.
This is a fairly serious issue for applications, since on an implementation
conforming to Annex G, I*INFINITY is interpreted as intended, whereas on an
implementation lacking _Imaginary types and defining I as _Complex_I,
I*INFINITY results in a NAN due to the 0*INFINITY term.
--
You are receiving this mail because:
You are on the CC list for the bug.