aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-07-25 15:58:04 +0200
committerAldy Hernandez <aldyh@redhat.com>2022-07-25 17:31:27 +0200
commitca1e4b26c19351077db1d8e6ff1cb97f05bca79f (patch)
tree88a5e08d85d51282a80b574680b3e939bf8ce341 /gcc
parent4c6567b4090d9363f90b5c68e238e7d0964b6e89 (diff)
downloadgcc-ca1e4b26c19351077db1d8e6ff1cb97f05bca79f.zip
gcc-ca1e4b26c19351077db1d8e6ff1cb97f05bca79f.tar.gz
gcc-ca1e4b26c19351077db1d8e6ff1cb97f05bca79f.tar.bz2
[PR middle-end/106432] Gracefully handle unsupported type in range_on_edge
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-range.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index 7ac4830..eb347ee 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)