This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/15720] stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__
- From: "joseph at codesourcery dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sat, 06 Jul 2013 20:58:24 +0000
- Subject: [Bug libc/15720] stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__
- Auto-submitted: auto-generated
- References: <bug-15720-131 at http dot sourceware dot org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=15720
--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
I think this is no different from defining __STDC__ in GCC's default mode,
or defining __STDC_VERSION__ to indicate the selected standards mode
rather than to indicate full conformance to a particular standard version.
That is, it indicates intent rather than completeness (for example,
special cases of functions try to follow Annex G).
The main issue with implementing _Imaginary support in GCC would be
avoiding the ABI mess that arose from supporting complex numbers on all
targets without any thought about what the ABIs for argument passing and
return should be. That is, it would be appropriate to disable it except
for targets enabling it by a target hook that means any necessary
target-specific ABI work has been done including coordinating with anyone
responsible for the architecture ABI definition. (Saying that imaginary
types are passed like the corresponding real types is a tempting default -
except that float _Imaginary does *not* promote to double _Imaginary when
passed in variable arguments, so an unpromoted float _Imaginary could be
passed there where an unpromoted float never could.)
--
You are receiving this mail because:
You are on the CC list for the bug.