]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[PR middle-end/106432] Gracefully handle unsupported type in range_on_edge
authorAldy Hernandez <aldyh@redhat.com>
Mon, 25 Jul 2022 13:58:04 +0000 (15:58 +0200)
committerAldy Hernandez <aldyh@redhat.com>
Mon, 25 Jul 2022 15:31:27 +0000 (17:31 +0200)
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.

PR middle-end/106432

gcc/ChangeLog:

* gimple-range.cc (gimple_ranger::range_on_edge): Return false
when the result range type is unsupported.

gcc/gimple-range.cc

index 7ac48303e4e2ec6a09c68e87033a2ca77b64994c..eb347eee45b553fa50f91034d4059454ccb2ccd6 100644 (file)
@@ -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)