The headers provided with recent GNU toolchains for PPC have code that includes typedefs such as:
typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__KC__)))
Also, when I added __float128, I neglected to add support for _Complex __float128 altogether. This patch fixes those oversights and allows clang to compile something like:
#include <math.h> _Complex __float128 testkf(_Complex __float128 a, _Complex __float128 b) { return a + b; }
with -mfloat128 which it currently fails to compile due to the two reasons listed above.
Are there interactions with the other mode specifiers? For example, should this be allowed with integer modes? If so, I think this needs more tests.