]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/68079 (hppa: pointers to method types need canonicalization before...
authorJohn David Anglin <danglin@gcc.gnu.org>
Sun, 25 Oct 2015 15:45:33 +0000 (15:45 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sun, 25 Oct 2015 15:45:33 +0000 (15:45 +0000)
PR middle-end/68079
* dojump.c (do_compare_and_jump): Canonicalize both function and
method types.

From-SVN: r229301

gcc/ChangeLog
gcc/dojump.c

index 5090d1a37a0cc8d196133ab4d9949fe1f059b5b4..b1d6892dfbe73ef0ba8cbf2a5ec100bce5c54eb3 100644 (file)
@@ -1,3 +1,9 @@
+2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
+
+       PR middle-end/68079
+       * dojump.c (do_compare_and_jump): Canonicalize both function and
+       method types.
+
 2015-10-15  Peter Bergner  <bergner@vnet.ibm.com>
 
        Backport from mainline
index 1c3a2bee872c7680d6576e521a01f1096abf5328..140aa57939b0bd2451f805c3e7b5cf42c470bbbd 100644 (file)
@@ -1193,12 +1193,12 @@ do_compare_and_jump (tree treeop0, tree treeop1, enum rtx_code signed_code,
      If one side isn't, we want a noncanonicalized comparison.  See PR
      middle-end/17564.  */
   if (HAVE_canonicalize_funcptr_for_compare
-      && TREE_CODE (TREE_TYPE (treeop0)) == POINTER_TYPE
-      && TREE_CODE (TREE_TYPE (TREE_TYPE (treeop0)))
-          == FUNCTION_TYPE
-      && TREE_CODE (TREE_TYPE (treeop1)) == POINTER_TYPE
-      && TREE_CODE (TREE_TYPE (TREE_TYPE (treeop1)))
-          == FUNCTION_TYPE)
+      && POINTER_TYPE_P (TREE_TYPE (treeop0))
+      && POINTER_TYPE_P (TREE_TYPE (treeop1))
+      && (TREE_CODE (TREE_TYPE (TREE_TYPE (treeop0))) == FUNCTION_TYPE
+         || TREE_CODE (TREE_TYPE (TREE_TYPE (treeop0))) == METHOD_TYPE)
+      && (TREE_CODE (TREE_TYPE (TREE_TYPE (treeop1))) == FUNCTION_TYPE
+         || TREE_CODE (TREE_TYPE (TREE_TYPE (treeop1))) == METHOD_TYPE))
     {
       rtx new_op0 = gen_reg_rtx (mode);
       rtx new_op1 = gen_reg_rtx (mode);