Commit a92cc0da by Peter Bergner Committed by Peter Bergner

Do not define DFP builtin functions, if DFP has been disabled.

	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.

From-SVN: r278783
parent b1a73b48
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
......@@ -2935,6 +2935,10 @@ def_builtin (const char *name, tree type, enum rs6000_builtins code)
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));
......@@ -7702,6 +7706,11 @@ builtin_function_type (machine_mode mode_ret, machine_mode mode_arg0,
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 "
......@@ -7719,6 +7728,11 @@ builtin_function_type (machine_mode mode_ret, machine_mode mode_arg0,
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 "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment