aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/error.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index cc99369..cdc55b4 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-04 Paolo Carlini <pcarlini@suse.de>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/34611
+ * error.c (dump_template_argument): Deal with TREE_LIST.
+
2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
* parser.c (cp_parser_check_decl_spec): Don't warn about "long
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 285d4fe..d3d9975 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -143,7 +143,12 @@ dump_template_argument (tree arg, int flags)
else if (TYPE_P (arg) || TREE_CODE (arg) == TEMPLATE_DECL)
dump_type (arg, flags & ~TFF_CLASS_KEY_OR_ENUM);
else
- dump_expr (arg, (flags | TFF_EXPR_IN_PARENS) & ~TFF_CLASS_KEY_OR_ENUM);
+ {
+ if (TREE_CODE (arg) == TREE_LIST)
+ arg = TREE_VALUE (arg);
+
+ dump_expr (arg, (flags | TFF_EXPR_IN_PARENS) & ~TFF_CLASS_KEY_OR_ENUM);
+ }
}
/* Dump a template-argument-list ARGS (always a TREE_VEC) under control