From: Jakub Jelinek Date: Tue, 14 Dec 2004 18:12:32 +0000 (+0100) Subject: re PR middle-end/18951 (Invalid code generated by expand_errno_check) X-Git-Tag: releases/gcc-3.4.4~414 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e695d45405e6163ba4834e2204faac25491d283c;p=thirdparty%2Fgcc.git re PR middle-end/18951 (Invalid code generated by expand_errno_check) PR middle-end/18951 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid using arguments passed to save_expr after that call. * gcc.c-torture/execute/20041213-1.c: New test. From-SVN: r92153 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 960f06b6f1ff..f87baa592919 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-12-14 Jakub Jelinek + + PR middle-end/18951 + * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid + using arguments passed to save_expr after that call. + 2004-12-13 John David Anglin PR middle-end/18730 diff --git a/gcc/builtins.c b/gcc/builtins.c index dadb6cd41a0e..4cb42cc61e24 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1708,6 +1708,7 @@ expand_builtin_mathfn (tree exp, rtx target, rtx subtarget) narg = save_expr (arg); if (narg != arg) { + arg = narg; arglist = build_tree_list (NULL_TREE, arg); exp = build_function_call_expr (fndecl, arglist); } @@ -1840,6 +1841,7 @@ expand_builtin_mathfn_2 (tree exp, rtx target, rtx subtarget) narg = save_expr (arg1); if (narg != arg1) { + arg1 = narg; temp = build_tree_list (NULL_TREE, narg); stable = false; } @@ -1849,6 +1851,7 @@ expand_builtin_mathfn_2 (tree exp, rtx target, rtx subtarget) narg = save_expr (arg0); if (narg != arg0) { + arg0 = narg; arglist = tree_cons (NULL_TREE, narg, temp); stable = false; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 604261748021..7adcb330f4cf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-12-14 Jakub Jelinek + + PR middle-end/18951 + * gcc.c-torture/execute/20041213-1.c: New test. + 2004-12-13 Richard Henderson * gcc.dg/i386-sse-10.c: Fix typo in options.