diff options
author | Feng Xue <fxue@os.amperecomputing.com> | 2020-08-31 15:00:52 +0800 |
---|---|---|
committer | Feng Xue <fxue@os.amperecomputing.com> | 2020-08-31 16:34:56 +0800 |
commit | e11c4b7f837bc6b4c22b1f5bf41a9d0608d256be (patch) | |
tree | ffb9d8482bb15ce646ace8e502a9e502ea2de5e0 /gcc/ipa-cp.c | |
parent | 0106300f6c3f7bae5eb1c46dbd45aa07c94e1b15 (diff) | |
download | gcc-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.c | 8 |
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) |