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

Reply via email to