* tree-vrp.c (get_single_symbol): New function.
commit1ec8aa41e76df62c67606628a4d75d22abb5073c
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Sep 2014 23:01:17 +0000 (29 23:01 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Sep 2014 23:01:17 +0000 (29 23:01 +0000)
tree5b06d0bbf9fbfe3f3c708849252bb65efb953e44
parente8d737f407cc49d20ecdef0789b480953c71d30c
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215697 138bc75d-0d04-0410-961f-82ee72b054a4
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