On Thu, 25 Aug 2016, Nick Clifton wrote:

>   The cause appears to be an attempt to register a builtin type using
>   the float128_type_node, which is NULL for these particular targets:
> 
>     gcc/config/ia64/ia64.c:10373
>     gcc/config/i386/i386.c:33347
> 
>   Presumably float128_type_node should not be NULL, but I am not sure
>   how to fix this.  Any suggestions ?

I think this indicates that i386 and ia64 need their own local version of 
float128_type_node, set up like float80_type_node (i.e. copied from the 
global one if that isn't NULL, otherwise set up locally) instead of using 
the global one unconditionally, because of the existence of i386 and ia64 
targets where the TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P hook can return 
false for TFmode (in which case __float128 still exists, but not 
_Float128).  Though preferable would be to fix all the targets with 
IX86_NO_LIBGCC_TFMODE / IX86_MAYBE_NO_LIBGCC_TFMODE / 
IA64_NO_LIBGCC_TFMODE so that they include the relevant support code in 
libgcc and so no longer need the TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P 
hook overridden at all.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to