Simplify comparison GIMPLE IL verification
authorRichard Biener <rguenther@suse.de>
Mon, 19 Oct 2020 08:41:19 +0000 (10:41 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 19 Oct 2020 08:44:11 +0000 (10:44 +0200)
There's an old extra allowance for same-mode pointer comparison
for which I don't see any good reason today where the only special-case
of pointers in useless_type_conversion_p is that of function/method
pointers vs. non-function/method pointers.

2020-10-19  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (verify_gimple_comparison): Drop special-case
for pointer comparison.

gcc/tree-cfg.c

index 002560d9370e35dd3d2bc938cecdd448445647ba..3d825c2021202afe54d9bedd14a13c3f725e3f81 100644 (file)
@@ -3489,14 +3489,9 @@ verify_gimple_comparison (tree type, tree op0, tree op1, enum tree_code code)
   /* For comparisons we do not have the operations type as the
      effective type the comparison is carried out in.  Instead
      we require that either the first operand is trivially
-     convertible into the second, or the other way around.
-     Because we special-case pointers to void we allow
-     comparisons of pointers with the same mode as well.  */
+     convertible into the second, or the other way around.  */
   if (!useless_type_conversion_p (op0_type, op1_type)
-      && !useless_type_conversion_p (op1_type, op0_type)
-      && (!POINTER_TYPE_P (op0_type)
-         || !POINTER_TYPE_P (op1_type)
-         || TYPE_MODE (op0_type) != TYPE_MODE (op1_type)))
+      && !useless_type_conversion_p (op1_type, op0_type))
     {
       error ("mismatching comparison operand types");
       debug_generic_expr (op0_type);