diff options
author | Jason Merrill <merrill@gnu.org> | 1994-10-11 18:39:14 +0000 |
---|---|---|
committer | Jason Merrill <merrill@gnu.org> | 1994-10-11 18:39:14 +0000 |
commit | fef71f9d2bc4f87bd2ea6c8874a00f76ba8b0676 (patch) | |
tree | 3e64b11a8ba75ca45648f846dde142d59919c11b | |
parent | 3536cd7e049cff68dfc38f6c660a0e88fe0c439c (diff) | |
download | gcc-fef71f9d2bc4f87bd2ea6c8874a00f76ba8b0676.zip gcc-fef71f9d2bc4f87bd2ea6c8874a00f76ba8b0676.tar.gz gcc-fef71f9d2bc4f87bd2ea6c8874a00f76ba8b0676.tar.bz2 |
(resolve_offset_ref): Fix types used in resolving .*
expressions.
From-SVN: r8252
-rw-r--r-- | gcc/cp/init.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 08f33c0..e0905c6 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2306,9 +2306,11 @@ resolve_offset_ref (exp) { basetype = TYPE_OFFSET_BASETYPE (TREE_TYPE (member)); addr = convert_pointer_to (basetype, addr); - member = convert (ptr_type_node, build_unary_op (ADDR_EXPR, member, 0)); + member = convert (ptrdiff_type_node, + build_unary_op (ADDR_EXPR, member, 0)); return build1 (INDIRECT_REF, type, - build (PLUS_EXPR, ptr_type_node, addr, member)); + build (PLUS_EXPR, build_pointer_type (type), + addr, member)); } else if (TYPE_PTRMEMFUNC_P (TREE_TYPE (member))) { |