aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-07-01 16:24:25 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-07-01 16:24:25 -0400
commitd816a3ba71e05342e7ddbf9c0a7b0bb67d05dc12 (patch)
treed1ea8adbb7a89330a40f22b4d90fd74b7d2be45b /gcc/cp/pt.c
parenta771bf1cf6a6d6f785f5b6f714e9d732ccfcc757 (diff)
downloadgcc-d816a3ba71e05342e7ddbf9c0a7b0bb67d05dc12.zip
gcc-d816a3ba71e05342e7ddbf9c0a7b0bb67d05dc12.tar.gz
gcc-d816a3ba71e05342e7ddbf9c0a7b0bb67d05dc12.tar.bz2
re PR c++/48593 (Wrong return type when applying address operator to inherited, template dependend member, using a typedef)
PR c++/48593 * pt.c (tsubst_qualified_id): Check PTRMEM_OK_P. * tree.c (build_qualified_name): Set PTRMEM_OK_P. * semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on SCOPE_REF, too. * cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too. (QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1. From-SVN: r175765
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 947e19e..5743159 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -11344,7 +11344,7 @@ tsubst_qualified_id (tree qualified_id, tree args,
expr = (adjust_result_of_qualified_name_lookup
(expr, scope, current_class_type));
expr = (finish_qualified_id_expr
- (scope, expr, done, address_p,
+ (scope, expr, done, address_p && PTRMEM_OK_P (qualified_id),
QUALIFIED_NAME_IS_TEMPLATE (qualified_id),
/*template_arg_p=*/false));
}