aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr46832.c4
-rw-r--r--gcc/tree-ssa-math-opts.c3
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb4a27b..e2dda11 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-07 Richard Guenther <rguenther@suse.de>
+
+ 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 <yao@codesourcery.com>
* Makefile.in: Add $(TARGET_H) to the regrename.o rule.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c77146d..3ff9cd8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/46832
+ * gcc.c-torture/compile/pr46832.c: New testcase.
+
2010-12-07 Jakub Jelinek <jakub@redhat.com>
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 0000000..f500aa5
--- /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 e8f9037..ed9b7a9 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