diff options
author | kugan <kugan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-09-23 10:25:09 +0000 |
---|---|---|
committer | kugan <kugan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-09-23 10:25:09 +0000 |
commit | ada0f4c4dfa1a0979f224188e996e8c29b10a4cc (patch) | |
tree | 1648accc5ce0a86f41e47368debe12c2739bfd5d | |
parent | 8771094d753e37faf6d459bf762a99f1840d69e6 (diff) | |
download | gcc-ada0f4c4dfa1a0979f224188e996e8c29b10a4cc.tar.gz |
Drop TREE_OVERFLOW
gcc/ChangeLog:
2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
PR ipa/77677
* ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
from constant while creating value range.
gcc/testsuite/ChangeLog:
2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
PR ipa/77677
* gcc.dg/torture/pr77677.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240420 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-cp.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr77677.c | 18 |
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 210d7f9be29..d1226159df0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> + + PR ipa/77677 + * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW + from constant while creating value range. + 2016-09-23 Renlin Li <renlin.li@arm.com> * ira.c (ira): Move ira_use_lra_p initialization code to ... diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index fdcce16f412..95a2a1e4b3a 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -2065,6 +2065,8 @@ propagate_vr_accross_jump_function (cgraph_edge *cs, tree val = ipa_get_jf_constant (jfunc); if (TREE_CODE (val) == INTEGER_CST) { + if (TREE_OVERFLOW_P (val)) + val = drop_tree_overflow (val); jfunc->vr_known = true; jfunc->m_vr.type = VR_RANGE; jfunc->m_vr.min = val; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 488e5db5f50..150aff91ead 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> + + PR ipa/77677 + * gcc.dg/torture/pr77677.c: New test. + 2016-09-23 Andre Vehreschild <vehre@gcc.gnu.org> * gfortran.dg/coarray_lib_comm_1.f90: Using the old caf-interface diff --git a/gcc/testsuite/gcc.dg/torture/pr77677.c b/gcc/testsuite/gcc.dg/torture/pr77677.c new file mode 100644 index 00000000000..af3f0b0af09 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr77677.c @@ -0,0 +1,18 @@ +/* PR ipa/77677 */ +/* { dg-do compile } */ + +int a, b; + +static void fn1 (short p1) +{ + a = -p1; + if (a || b) + __builtin_printf ("%d\n", b); +} + +int main () +{ + int c[] = { 40000 }; + fn1 (c[0]); + return 0; +} |