diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb4a27b3ce5b..e2dda1120ff8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-12-07 Richard Guenther + + PR tree-optimization/46832 + * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check + that the call has a lhs. + 2010-12-07 Yao Qi * Makefile.in: Add $(TARGET_H) to the regrename.o rule. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c77146d7f60b..3ff9cd8dcf06 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-12-07 Richard Guenther + + PR tree-optimization/46832 + * gcc.c-torture/compile/pr46832.c: New testcase. + 2010-12-07 Jakub Jelinek PR debug/46799 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr46832.c b/gcc/testsuite/gcc.c-torture/compile/pr46832.c new file mode 100644 index 000000000000..f500aa510680 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr46832.c @@ -0,0 +1,4 @@ +double pow(double x, double y); +void foo( double x ) { + int j = (int) ((pow(x, 2)) < 0.0 ? (pow(x, 2))-0.5 : (pow(x, 2))+0.5); +} diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index e8f90372bc1a..ed9b7a9d5467 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -1707,7 +1707,8 @@ execute_optimize_widening_mul (void) default:; } } - else if (is_gimple_call (stmt)) + else if (is_gimple_call (stmt) + && gimple_call_lhs (stmt)) { tree fndecl = gimple_call_fndecl (stmt); if (fndecl