diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/builtins.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de64b881792..61a4798a355 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-01-24 Richard Guenther <rguenther@suse.de> + + * builtins.c (expand_builtin_cexpi): Get the fndecl + for cexp in the correct way. + 2007-01-24 Jan Hubicka <jh@suse.cz> * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls. diff --git a/gcc/builtins.c b/gcc/builtins.c index bf57c7bf55e..240231e538b 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -2283,13 +2283,18 @@ expand_builtin_cexpi (tree exp, rtx target, rtx subtarget) } else { - tree call, fn, narg; + tree call, fn = NULL_TREE, narg; tree ctype = build_complex_type (type); /* We can expand via the C99 cexp function. */ gcc_assert (TARGET_C99_FUNCTIONS); - fn = mathfn_built_in (ctype, BUILT_IN_CEXP); + if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CEXPIF) + fn = built_in_decls[BUILT_IN_CEXPF]; + else if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CEXPI) + fn = built_in_decls[BUILT_IN_CEXP]; + else if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_CEXPIL) + fn = built_in_decls[BUILT_IN_CEXPL]; narg = fold_build2 (COMPLEX_EXPR, ctype, build_real (type, dconst0), arg); |