aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-cp.c
diff options
context:
space:
mode:
authorFeng Xue <fxue@os.amperecomputing.com>2020-08-31 15:00:52 +0800
committerFeng Xue <fxue@os.amperecomputing.com>2020-08-31 16:34:56 +0800
commite11c4b7f837bc6b4c22b1f5bf41a9d0608d256be (patch)
treeffb9d8482bb15ce646ace8e502a9e502ea2de5e0 /gcc/ipa-cp.c
parent0106300f6c3f7bae5eb1c46dbd45aa07c94e1b15 (diff)
downloadgcc-e11c4b7f837bc6b4c22b1f5bf41a9d0608d256be.zip
gcc-e11c4b7f837bc6b4c22b1f5bf41a9d0608d256be.tar.gz
gcc-e11c4b7f837bc6b4c22b1f5bf41a9d0608d256be.tar.bz2
ipa/96806 - Fix ICE in ipa-cp due to integer addition overflow
2020-08-31 Feng Xue <fxue@os.amperecomputing.com> gcc/ PR tree-optimization/96806 * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition overflow. gcc/testsuite/ PR tree-optimization/96806 * g++.dg/ipa/pr96806.C: New test.
Diffstat (limited to 'gcc/ipa-cp.c')
-rw-r--r--gcc/ipa-cp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 7ae6c88..b3e7d41 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -5481,11 +5481,11 @@ decide_about_value (struct cgraph_node *node, int index, HOST_WIDE_INT offset,
freq_sum, count_sum,
val->local_size_cost)
&& !good_cloning_opportunity_p (node,
- val->local_time_benefit
- + val->prop_time_benefit,
+ safe_add (val->local_time_benefit,
+ val->prop_time_benefit),
freq_sum, count_sum,
- val->local_size_cost
- + val->prop_size_cost))
+ safe_add (val->local_size_cost,
+ val->prop_size_cost)))
return false;
if (dump_file)