This avoids some more TREE_OVERFLOWs in the IL (which now confuses IPA VRP).
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. Richard. 2016-09-22 Richard Biener <rguent...@suse.de> PR middle-end/77677 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW from constant folding results. (gimple_resimplify2): Likewise. (gimple_resimplify3): Likewise. Index: gcc/gimple-match-head.c =================================================================== --- gcc/gimple-match-head.c (revision 240342) +++ gcc/gimple-match-head.c (working copy) @@ -89,6 +89,8 @@ gimple_resimplify1 (gimple_seq *seq, if (tem != NULL_TREE && CONSTANT_CLASS_P (tem)) { + if (TREE_OVERFLOW_P (tem)) + tem = drop_tree_overflow (tem); res_ops[0] = tem; res_ops[1] = NULL_TREE; res_ops[2] = NULL_TREE; @@ -134,6 +136,8 @@ gimple_resimplify2 (gimple_seq *seq, if (tem != NULL_TREE && CONSTANT_CLASS_P (tem)) { + if (TREE_OVERFLOW_P (tem)) + tem = drop_tree_overflow (tem); res_ops[0] = tem; res_ops[1] = NULL_TREE; res_ops[2] = NULL_TREE; @@ -194,6 +198,8 @@ gimple_resimplify3 (gimple_seq *seq, if (tem != NULL_TREE && CONSTANT_CLASS_P (tem)) { + if (TREE_OVERFLOW_P (tem)) + tem = drop_tree_overflow (tem); res_ops[0] = tem; res_ops[1] = NULL_TREE; res_ops[2] = NULL_TREE;