+2019-11-27 Peter Bergner <bergner@linux.ibm.com>
+
+ PR bootstrap/92661
+ * config/rs6000/rs6000-call.c: (def_builtin): Do not define the
+ builtin if we don't have an actual type.
+ (builtin_function_type): If the builtin function uses a DFP type
+ and decimal float has been disabled, then return NULL_TREE.
+
2019-11-27 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/92510
unsigned classify = rs6000_builtin_info[(int)code].attr;
const char *attr_string = "";
+ /* Don't define the builtin if it doesn't have a type. See PR92661. */
+ if (type == NULL_TREE)
+ return;
+
gcc_assert (name != NULL);
gcc_assert (IN_RANGE ((int)code, 0, (int)RS6000_BUILTIN_COUNT));
if (!ret_type && h.uns_p[0])
ret_type = builtin_mode_to_type[h.mode[0]][0];
+ /* If the required decimal float type has been disabled,
+ then return NULL_TREE. */
+ if (!ret_type && DECIMAL_FLOAT_MODE_P (h.mode[0]))
+ return NULL_TREE;
+
if (!ret_type)
fatal_error (input_location,
"internal error: builtin function %qs had an unexpected "
if (!arg_type[i] && uns_p)
arg_type[i] = builtin_mode_to_type[m][0];
+ /* If the required decimal float type has been disabled,
+ then return NULL_TREE. */
+ if (!arg_type[i] && DECIMAL_FLOAT_MODE_P (m))
+ return NULL_TREE;
+
if (!arg_type[i])
fatal_error (input_location,
"internal error: builtin function %qs, argument %d "