diff options
author | Richard Biener <rguenther@suse.de> | 2017-08-01 07:04:10 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-08-01 07:04:10 +0000 |
commit | 5e8fe12fccb2edeb1b699101167b1c921a742bb7 (patch) | |
tree | 4e2d8acc2a1798ae4c5754c00fef9b38f530ecee /gcc/tree-vrp.c | |
parent | 93ac482a661be4904563e065f6dd32c04eac1cee (diff) | |
download | gcc-5e8fe12fccb2edeb1b699101167b1c921a742bb7.zip gcc-5e8fe12fccb2edeb1b699101167b1c921a742bb7.tar.gz gcc-5e8fe12fccb2edeb1b699101167b1c921a742bb7.tar.bz2 |
re PR tree-optimization/81297 (ICE in get_single_symbol)
2017-08-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/81297
* tree-vrp.c (get_single_symbol): Remove assert, instead drop
TREE_OVERFLOW from INTEGER_CSTs.
* gcc.dg/torture/pr81297.c: New testcase.
From-SVN: r250758
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 1f0b688..79a29bf 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -796,7 +796,8 @@ get_single_symbol (tree t, bool *neg, tree *inv) if (TREE_CODE (t) != SSA_NAME) return NULL_TREE; - gcc_assert (! inv_ || ! TREE_OVERFLOW_P (inv_)); + if (inv_ && TREE_OVERFLOW_P (inv_)) + inv_ = drop_tree_overflow (inv_); *neg = neg_; *inv = inv_; |