From: Jason Merrill Date: Sat, 24 Jan 1998 12:26:46 +0000 (+0000) Subject: error.c (dump_decl): Fix type default template args. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=67c2a92854761b0dcf05a6c2d0fa636a55e6be60;p=gcc.git error.c (dump_decl): Fix type default template args. * error.c (dump_decl): Fix type default template args. (dump_type): Hand TEMPLATE_DECL off to dump_decl. From-SVN: r17470 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 38b4afd361d..7fb9c4d7012 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 24 12:13:54 1998 Jason Merrill + + * error.c (dump_decl): Fix type default template args. + (dump_type): Hand TEMPLATE_DECL off to dump_decl. + Fri Jan 23 18:34:37 1998 Mumit Khan * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined. diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 2cc5c84d765..2465440c028 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -207,6 +207,7 @@ dump_type (t, v) break; case TYPE_DECL: + case TEMPLATE_DECL: dump_decl (t, v); break; @@ -229,58 +230,6 @@ dump_type (t, v) OB_PUTID (TYPE_IDENTIFIER (t)); break; - /* A substituted template template parameter. Default template - argument handling are different from dump_decl. */ - case TEMPLATE_DECL: - { - tree orig_args = DECL_TEMPLATE_PARMS (t); - tree args; - int i; - for (args = orig_args = nreverse (orig_args); - args; - args = TREE_CHAIN (args)) - { - int len = TREE_VEC_LENGTH (TREE_VALUE (args)); - - OB_PUTS ("template <"); - for (i = 0; i < len; i++) - { - tree arg = TREE_VEC_ELT (TREE_VALUE (args), i); - tree defval = TREE_PURPOSE (arg); - arg = TREE_VALUE (arg); - if (TREE_CODE (arg) == TYPE_DECL) - { - if (DECL_NAME (arg)) - { - OB_PUTS ("class "); - OB_PUTID (DECL_NAME (arg)); - } - else - OB_PUTS ("class"); - } - else - dump_decl (arg, 1); - - if (defval) - { - OB_PUTS (" = "); - if (TREE_CODE (arg) == TYPE_DECL) - dump_type (defval, 1); - else - dump_expr (defval, 1); - } - - OB_PUTC2 (',', ' '); - } - if (len != 0) - OB_UNPUT (2); - OB_PUTC2 ('>', ' '); - } - nreverse(orig_args); - dump_type (TREE_TYPE (t), v); - } - break; - case TEMPLATE_TEMPLATE_PARM: if (!CLASSTYPE_TEMPLATE_INFO (t)) { @@ -837,7 +786,10 @@ dump_decl (t, v) if (defval) { OB_PUTS (" = "); - dump_decl (defval, 1); + if (TREE_CODE (arg) == TYPE_DECL) + dump_type (defval, 1); + else + dump_decl (defval, 1); } OB_PUTC2 (',', ' ');