On Fri, 26 Aug 2016, Marc Glisse wrote: > On Fri, 26 Aug 2016, Joseph Myers wrote: > > > And since __float128 is architecture-specific, there > > isn't a preprocessor conditional that means "__float128 is available" > > That's what __SIZEOF_FLOAT128__ was supposed to be for. I didn't add it to > itanium because zombies, and it looks like powerpc didn't add the macro when > they later gained __float128 support, but that would be easy to fix.
Well, the patch could use __SIZEOF_FLOAT128__ just as well as __i386__ (the effect would be an extra union member that does nothing in the x86_64 case) without the macro needing defining on other architectures. What would be trickier is if a new architecture gets support for _Float128 (as a type increasing the alignment requirement) without the old __float128 name, and then for C++ compatibility the header needs to use float __attribute__ ((__mode__ (__TF__))) as the type name on that architecture (but on powerpc, TFmode may not be the mode for this type). Anyway, we need review of the principle of increasing the alignment, and given that can consider what the best choice of macro is. -- Joseph S. Myers jos...@codesourcery.com