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.