aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-12-03 21:35:08 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-12-03 21:35:08 +0100
commite9082138bd78d2eb4e3f3b2af8127c6b2bcfbe84 (patch)
treeb0a37d5c035d1b078e8b2a87a5ebefb755e18305 /gcc
parentc3d79243214c8fbfc6696c249232ccfb033a59ef (diff)
downloadgcc-e9082138bd78d2eb4e3f3b2af8127c6b2bcfbe84.zip
gcc-e9082138bd78d2eb4e3f3b2af8127c6b2bcfbe84.tar.gz
gcc-e9082138bd78d2eb4e3f3b2af8127c6b2bcfbe84.tar.bz2
re PR c/59708 (clang-compatible checked arithmetic builtins)
PR c/59708 * expmed.c (expand_widening_mult): Return const0_rtx if coeff is 0. From-SVN: r218331
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/expmed.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eff109f..aa2f958 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2014-12-03 Jakub Jelinek <jakub@redhat.com>
+ PR c/59708
+ * expmed.c (expand_widening_mult): Return const0_rtx if
+ coeff is 0.
+
* doc/gimple.texi (gimple_build_assign_with_ops): Remove.
(gimple_build_assign): Document the new overloads.
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 0304e46..708f04f 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -3289,6 +3289,9 @@ expand_widening_mult (machine_mode mode, rtx op0, rtx op1, rtx target,
enum mult_variant variant;
struct algorithm algorithm;
+ if (coeff == 0)
+ return CONST0_RTX (mode);
+
/* Special case powers of two. */
if (EXACT_POWER_OF_2_OR_ZERO_P (coeff))
{