d: Explicitly determine which built-in copysign function to call.
For some targets, mathfn_built_in returns NULL as copysign is not implicitly available, causing an ICE. Now copysign is explicitly requested when expanding the intrinsic. gcc/d/ChangeLog: * intrinsics.cc (expand_intrinsic_copysign): Explicitly determine which built-in copysign function to call.
This commit is contained in:
parent
5d4b824faf
commit
d975d6dce9
1 changed files with 7 additions and 4 deletions
|
@ -466,11 +466,14 @@ expand_intrinsic_copysign (tree callexp)
|
|||
from = fold_convert (type, from);
|
||||
|
||||
/* Which variant of __builtin_copysign* should we call? */
|
||||
tree builtin = mathfn_built_in (type, BUILT_IN_COPYSIGN);
|
||||
gcc_assert (builtin != NULL_TREE);
|
||||
built_in_function code = (type == float_type_node) ? BUILT_IN_COPYSIGNF
|
||||
: (type == double_type_node) ? BUILT_IN_COPYSIGN
|
||||
: (type == long_double_type_node) ? BUILT_IN_COPYSIGNL
|
||||
: END_BUILTINS;
|
||||
|
||||
return call_builtin_fn (callexp, DECL_FUNCTION_CODE (builtin), 2,
|
||||
to, from);
|
||||
gcc_assert (code != END_BUILTINS);
|
||||
|
||||
return call_builtin_fn (callexp, code, 2, to, from);
|
||||
}
|
||||
|
||||
/* Expand a front-end intrinsic call to pow(). This takes two arguments, the
|
||||
|
|
Loading…
Add table
Reference in a new issue