This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/15720] stdc-predef.h wrongly defines __STDC_IEC_559_COMPLEX__


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]