https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119969

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think this is due to pointers to PMF having since
r0-82711-ga489b1f0ea72e182de2706af2b2846376279fa39 alias set 0.
But I'm afraid I have no idea about the reasons for PR22369 and PR22451
changes.
--- gcc/cp/cp-objcp-common.cc   2025-10-09 22:41:19.871273246 +0200
+++ gcc/cp/cp-objcp-common.cc   2025-11-25 12:14:59.748415006 +0100
@@ -182,7 +182,7 @@ cxx_get_alias_set (tree t)

   /* Punt on PMFs until we canonicalize functions properly.  */
   if (TYPE_PTRMEMFUNC_P (t)
-      || (INDIRECT_TYPE_P (t)
+      || (0 && INDIRECT_TYPE_P (t)
          && TYPE_PTRMEMFUNC_P (TREE_TYPE (t))))
     return 0;

or
--- gcc/cp/cp-objcp-common.cc   2025-10-09 22:41:19.871273246 +0200
+++ gcc/cp/cp-objcp-common.cc   2025-11-25 12:13:37.205851363 +0100
@@ -181,10 +181,10 @@ cxx_get_alias_set (tree t)
     return get_alias_set (TYPE_CONTEXT (t));

   /* Punt on PMFs until we canonicalize functions properly.  */
-  if (TYPE_PTRMEMFUNC_P (t)
-      || (INDIRECT_TYPE_P (t)
-         && TYPE_PTRMEMFUNC_P (TREE_TYPE (t))))
+  if (TYPE_PTRMEMFUNC_P (t))
     return 0;
+  if (INDIRECT_TYPE_P (t) && TYPE_PTRMEMFUNC_P (TREE_TYPE (t)))
+    return get_alias_set (ptr_type_node);

   return c_common_get_alias_set (t);
 }
fixes the testcase.

Reply via email to