+2007-02-05 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
+ BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
+ <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
+ * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
+ before canonicalizing sincos to cexpi.
+ (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
+
2007-02-05 Roger Sayle <roger@eyesopen.com>
* config/alpha/alpha.c (alpha_add_builtins): New Helper function.
return res;
/* Canonicalize sincos to cexpi. */
+ if (!TARGET_C99_FUNCTIONS)
+ return NULL_TREE;
fn = mathfn_built_in (type, BUILT_IN_CEXPI);
if (!fn)
return NULL_TREE;
/* In case we can figure out the real part of arg0 and it is constant zero
fold to cexpi. */
+ if (!TARGET_C99_FUNCTIONS)
+ return NULL_TREE;
ifn = mathfn_built_in (rtype, BUILT_IN_CEXPI);
if (!ifn)
return NULL_TREE;
{
CASE_FLT_FN (BUILT_IN_CEXPI):
fn = mathfn_built_in (type, BUILT_IN_COS);
- return build_function_call_expr (fn, TREE_OPERAND (arg0, 1));
+ if (fn)
+ return build_function_call_expr (fn,
+ TREE_OPERAND (arg0, 1));
+ break;
- default:;
+ default:
+ break;
}
}
return NULL_TREE;
{
CASE_FLT_FN (BUILT_IN_CEXPI):
fn = mathfn_built_in (type, BUILT_IN_SIN);
- return build_function_call_expr (fn, TREE_OPERAND (arg0, 1));
+ if (fn)
+ return build_function_call_expr (fn,
+ TREE_OPERAND (arg0, 1));
+ break;
- default:;
+ default:
+ break;
}
}
return NULL_TREE;