aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-04-21 00:28:06 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-04-21 00:28:06 -0400
commit8adaafcf039d470993d1969069231b20fe67b460 (patch)
treeead1d4027a5a06b442433e9116424fc93f0c8de8 /gcc
parent8f69f5d0c9ccbc41bf94d4de0ab8118c2e09e010 (diff)
downloadgcc-8adaafcf039d470993d1969069231b20fe67b460.zip
gcc-8adaafcf039d470993d1969069231b20fe67b460.tar.gz
gcc-8adaafcf039d470993d1969069231b20fe67b460.tar.bz2
re PR c++/48594 (Rejects valid with pointer-to-member in template)
PR c++/48594 * decl2.c (build_offset_ref_call_from_tree): Move non-dependency of object outside condition. From-SVN: r172807
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/decl2.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ed98719..eae80e3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
2011-04-20 Jason Merrill <jason@redhat.com>
+ PR c++/48594
+ * decl2.c (build_offset_ref_call_from_tree): Move
+ non-dependency of object outside condition.
+
PR c++/48657
* decl.c (cp_finish_decl): Simplify template handling.
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 882bbf9..a9c2455 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -4081,9 +4081,9 @@ build_offset_ref_call_from_tree (tree fn, VEC(tree,gc) **args)
parameter. That must be done before the FN is transformed
because we depend on the form of FN. */
make_args_non_dependent (*args);
+ object = build_non_dependent_expr (object);
if (TREE_CODE (TREE_TYPE (fn)) == METHOD_TYPE)
{
- object = build_non_dependent_expr (object);
if (TREE_CODE (fn) == DOTSTAR_EXPR)
object = cp_build_addr_expr (object, tf_warning_or_error);
VEC_safe_insert (tree, gc, *args, 0, object);