• R
    fix definition of CMPLX macros in complex.h to work in constant expressions · 5ff2a118
    Rich Felker 提交于
    based on patches by Jens Gustedt. these macros need to be usable in
    static initializers, and the old definitions were not.
    
    there is no portable way to provide correct definitions for these
    macros unless the compiler supports pure imaginary types. a portable
    definition is provided for this case even though there are presently
    no compilers that can use it. gcc and compatible compilers provide a
    builtin function that can be used, but clang fails to support this and
    instead requires a construct which is a constraint violation and which
    is only a constant expression as a clang-specific extension.
    
    since these macros are a namespace violation in pre-C11 profiles, and
    since no known pre-C11 compilers provide any way to define them
    correctly anyway, the definitions have been made conditional on C11.
    5ff2a118
complex.h 3.6 KB