From: Peter Bergner Date: Wed, 27 Nov 2019 20:55:56 +0000 (+0000) Subject: Do not define DFP builtin functions, if DFP has been disabled. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a92cc0da1c4c85b5ac8bb3eb013946ee9ad3a40f;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7dbf824938f..a788dc4762f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2019-11-27 Peter Bergner + + 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 PR rtl-optimization/92510 diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c index 85ff85299d1..d332afb9c73 100644 --- a/gcc/config/rs6000/rs6000-call.c +++ b/gcc/config/rs6000/rs6000-call.c @@ -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 "