tree-vrp.c (get_single_symbol): New function.
commite76340be8fecb0b441e3c7040703e63f40b890cb
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 29 Sep 2014 23:01:17 +0000 (29 23:01 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 29 Sep 2014 23:01:17 +0000 (29 23:01 +0000)
tree5b06d0bbf9fbfe3f3c708849252bb65efb953e44
parentff5fdf67462d1b4c883c1c10938c7e719a20c5f2
tree-vrp.c (get_single_symbol): New function.

* tree-vrp.c (get_single_symbol): New function.
(build_symbolic_expr): Likewise.
(symbolic_range_based_on_p): New predicate.
(extract_range_from_binary_expr_1): Deal with single-symbolic ranges
for PLUS and MINUS.  Do not drop symbolic ranges at the end.
(extract_range_from_binary_expr): Try harder for PLUS and MINUS if
operand is symbolic and based on the other operand.

From-SVN: r215697
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/vrp94.c [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt40.adb [new file with mode: 0644]
gcc/tree-vrp.c