aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2002-01-23 07:44:45 -0500
committerJason Merrill <jason@gcc.gnu.org>2002-01-23 07:44:45 -0500
commitf893c16eeab350c284d0c079843ad32b3bb3bc8d (patch)
treeb1606bf87e0be3cc9792098ad501a40879f36f16 /gcc/cp
parentb21155754fcccc8980d5e696969229bb20375da5 (diff)
downloadgcc-f893c16eeab350c284d0c079843ad32b3bb3bc8d.zip
gcc-f893c16eeab350c284d0c079843ad32b3bb3bc8d.tar.gz
gcc-f893c16eeab350c284d0c079843ad32b3bb3bc8d.tar.bz2
re PR c++/3331 (member pointer inherits const)
* tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF. PR c++/3331 * cp/init.c (resolve_offset_ref): Use build_indirect_ref. From-SVN: r49132
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/init.c5
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ff79b13..11d77ed 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,7 +1,12 @@
-2002-01-22 Jason Merrill <jason@redhat.com>
+2002-01-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/3331
+ * init.c (resolve_offset_ref): Use build_indirect_ref.
* decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
+2002-01-22 Jason Merrill <jason@redhat.com>
+
* parse.y (function_body): Suppress the block for the outermost
curly braces.
* decl.c (pushdecl): Don't try to skip it.
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index f159f44..4dd0f9d 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1880,9 +1880,8 @@ resolve_offset_ref (exp)
member = cp_convert (ptrdiff_type_node, member);
- return build1 (INDIRECT_REF, type,
- build (PLUS_EXPR, build_pointer_type (type),
- addr, member));
+ addr = build (PLUS_EXPR, build_pointer_type (type), addr, member);
+ return build_indirect_ref (addr, 0);
}
else if (TYPE_PTRMEMFUNC_P (TREE_TYPE (member)))
{