summaryrefslogtreecommitdiffstats
path: root/gcc/cp
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-10 07:26:34 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-10 07:26:34 +0000
commita2aa3e0efc4539b9432b0186f794815a79feba8a (patch)
treea26c21de35f0a5274aeeaf713351a5bc07a214a1 /gcc/cp
parenteb6bc92f6d25d81eac3b0af53a05cd4c9e75d80a (diff)
downloadppe42-gcc-a2aa3e0efc4539b9432b0186f794815a79feba8a.tar.gz
ppe42-gcc-a2aa3e0efc4539b9432b0186f794815a79feba8a.zip
PR c++/9373
* g++.dg/opt/ptrmem2.C: New test. PR c++/9373 * cp-lang.c (cxx_get_alias_set): Use alias set zero for pointers to member functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64070 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/cp-lang.c10
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 257673fd205..72dcb9dc3a6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
2003-03-09 Mark Mitchell <mark@codesourcery.com>
+ PR c++/9373
+ * cp-lang.c (cxx_get_alias_set): Use alias set zero for
+ pointers to member functions.
+
PR c++/8534
* decl.c (build_ptrmemfunc_type): Do not allow default arugments
in pointer-to-member-function types.
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index 3671027ebe6..b35c31c0763 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -262,8 +262,14 @@ ok_to_generate_alias_set_for_type (tree t)
static HOST_WIDE_INT
cxx_get_alias_set (tree t)
{
- /* It's not yet safe to use alias sets for classes in C++. */
- if (!ok_to_generate_alias_set_for_type(t))
+
+ if (/* It's not yet safe to use alias sets for some classes in C++. */
+ !ok_to_generate_alias_set_for_type (t)
+ /* Nor is it safe to use alias sets for pointers-to-member
+ functions, due to the fact that there may be more than one
+ RECORD_TYPE type corresponding to the same pointer-to-member
+ type. */
+ || TYPE_PTRMEMFUNC_P (t))
return 0;
return c_common_get_alias_set (t);
OpenPOWER on IntegriCloud