call.c (build_x_va_arg): Check if in a template decl.
authorNathan Sidwell <nathan@codesourcery.com>
Thu, 22 Jun 2000 09:27:15 +0000 (09:27 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Thu, 22 Jun 2000 09:27:15 +0000 (09:27 +0000)
* call.c (build_x_va_arg): Check if in a template decl.
* pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.

From-SVN: r34645

gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/pt.c

index 0699f15..e05c3d3 100644 (file)
@@ -1,3 +1,8 @@
+2000-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * call.c (build_x_va_arg): Check if in a template decl.
+       * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg.
+
 2000-06-20  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * class.c (push_lang_context): TYPE_NAME gets you to the Java
index 7b7d96b..a155f10 100644 (file)
@@ -3838,6 +3838,9 @@ build_x_va_arg (expr, type)
      tree expr;
      tree type;
 {
+  if (processing_template_decl)
+    return build_min (VA_ARG_EXPR, type, expr);
+  
   type = complete_type_or_else (type, NULL_TREE);
 
   if (expr == error_mark_node || !type)
index 70ad846..6fcc9e4 100644 (file)
@@ -7099,7 +7099,7 @@ tsubst_copy (t, args, complain, in_decl)
       }
 
     case VA_ARG_EXPR:
-      return build_va_arg (tsubst_copy (TREE_OPERAND (t, 0), args, complain,
+      return build_x_va_arg (tsubst_copy (TREE_OPERAND (t, 0), args, complain,
                                        in_decl),
                           tsubst (TREE_TYPE (t), args, complain, in_decl));