Change range_handler, was Re: Fix gimple_expr_code?
authorAndrew MacLeod <amacleod@redhat.com>
Fri, 13 Nov 2020 00:25:59 +0000 (19:25 -0500)
committerAndrew MacLeod <amacleod@redhat.com>
Fri, 13 Nov 2020 00:28:45 +0000 (19:28 -0500)
Adjust the range_handler to not use gimple_expr_code/type.

* gimple-range.h (gimple_range_handler): Use gimple_assign and
gimple_cond routines to get type and code.
* range-op.cc (range_op_handler): Check for integral types.

gcc/gimple-range.h
gcc/range-op.cc

index 0aa6d4672ee794d806b43d3eec4540883ea56fd4..88d2ada324bfa528e91eb27a977d9688f23004e3 100644 (file)
@@ -97,8 +97,12 @@ extern bool gimple_range_calc_op2 (irange &r, const gimple *s,
 static inline range_operator *
 gimple_range_handler (const gimple *s)
 {
-  if ((gimple_code (s) == GIMPLE_ASSIGN) || (gimple_code (s) == GIMPLE_COND))
-    return range_op_handler (gimple_expr_code (s), gimple_expr_type (s));
+  if (gimple_code (s) == GIMPLE_ASSIGN)
+    return range_op_handler (gimple_assign_rhs_code (s),
+                            TREE_TYPE (gimple_assign_lhs (s)));
+  if (gimple_code (s) == GIMPLE_COND)
+    return range_op_handler (gimple_cond_code (s),
+                            TREE_TYPE (gimple_cond_lhs (s)));
   return NULL;
 }
 
index aff9383d936507a123f514038548f5cc84d92f6c..86d1af7fe5447841ca521d9325b4428126365fae 100644 (file)
@@ -3341,10 +3341,12 @@ pointer_table::pointer_table ()
 range_operator *
 range_op_handler (enum tree_code code, tree type)
 {
-  // First check if there is apointer specialization.
+  // First check if there is a pointer specialization.
   if (POINTER_TYPE_P (type))
     return pointer_tree_table[code];
-  return integral_tree_table[code];
+  if (INTEGRAL_TYPE_P (type))
+    return integral_tree_table[code];
+  return NULL;
 }
 
 // Cast the range in R to TYPE.