re PR c++/48594 (Rejects valid with pointer-to-member in template)
authorJason Merrill <jason@redhat.com>
Thu, 21 Apr 2011 04:28:06 +0000 (00:28 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 21 Apr 2011 04:28:06 +0000 (00:28 -0400)
PR c++/48594
* decl2.c (build_offset_ref_call_from_tree): Move
non-dependency of object outside condition.

From-SVN: r172807

gcc/cp/ChangeLog
gcc/cp/decl2.c

index ed9871973bca97590ac82e09e98db26561b9479d..eae80e3ae11f2388af10ff022a8746d2365b6e1c 100644 (file)
@@ -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.
 
index 882bbf9f88ee74e0809dc35086669a2388edb6da..a9c24556167911eda7a2fd79495ff53e5c8539ef 100644 (file)
@@ -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);