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).