https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92661

--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> ---
The design in the target-independent compiler is that the functions that 
get called when processing builtins.def notice that the type involved is 
error_mark_node (which in turn gets set when processing builtin-types.def) 
and refrain from defining the built-in function.  The goal is that the DFP 
types are never created in the compiler when DFP is unsupported, which 
means that no built-in functions using those types can be declared.

My suggestion for the target-specific built-in functions would be:

* builtin_function_type in rs6000-call.c should detect the case of a 
DECIMAL_FLOAT_MODE_P mode and NULL_TREE ret_type and return NULL_TREE in 
place of the existing error in that case.

* rs6000_common_init_builtins should then accept a NULL_TREE type as 
indicating not to call def_builtin (or def_builtin could accept it as 
indicating to return early).

Reply via email to