[COMMITTED,PR,middle-end/106432] Gracefully handle unsupported type in range_on_edge

Message ID 20220725153018.2193015-1-aldyh@redhat.com
State Committed
Commit ca1e4b26c19351077db1d8e6ff1cb97f05bca79f
Headers
Series [COMMITTED,PR,middle-end/106432] Gracefully handle unsupported type in range_on_edge |

Commit Message

Aldy Hernandez July 25, 2022, 3:30 p.m. UTC
  A cleaner approach to fix this PR has been suggested by Andrew, which
is to just return false on range_on_edge for unsupported range types.

Tested on x86-64 Linux.

gcc/ChangeLog:

	* gimple-range.cc (gimple_ranger::range_on_edge): Return false
          when the result range type is unsupported.
---
 gcc/gimple-range.cc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index 7ac48303e4e..eb347eee45b 100644
--- a/gcc/gimple-range.cc
+++ b/gcc/gimple-range.cc
@@ -201,7 +201,9 @@  bool
 gimple_ranger::range_on_edge (vrange &r, edge e, tree name)
 {
   Value_Range edge_range (TREE_TYPE (name));
-  gcc_checking_assert (r.supports_type_p (TREE_TYPE (name)));
+
+  if (!r.supports_type_p (TREE_TYPE (name)))
+    return false;
 
   // Do not process values along abnormal edges.
   if (e->flags & EDGE_ABNORMAL)