aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/cxx-pretty-print.c2
-rw-r--r--gcc/cp/search.c4
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 77e30a5..7c8c1d2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * cxx-pretty-print.c (pp_cxx_unqualified_id): Use
+ TEMPLATE_TYPE_PARM_INDEX instead of TYPE_FIELDS.
+ * search.c (dfs_unuse_fields): Add two more TREE_CODES that mean
+ the field is named TEMPLATE_TYPE_PARM_INDEX.
+
2004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
PR c++/14545
diff --git a/gcc/cp/cxx-pretty-print.c b/gcc/cp/cxx-pretty-print.c
index 53c677a..0a573f2 100644
--- a/gcc/cp/cxx-pretty-print.c
+++ b/gcc/cp/cxx-pretty-print.c
@@ -184,7 +184,7 @@ pp_cxx_unqualified_id (cxx_pretty_printer *pp, tree t)
break;
case TEMPLATE_TYPE_PARM:
- t = TYPE_FIELDS (t);
+ t = TEMPLATE_TYPE_PARM_INDEX (t);
case TEMPLATE_PARM_INDEX:
pp_cxx_unqualified_id (pp, TEMPLATE_PARM_DECL (t));
break;
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 11c7ded..5f4c91c 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -2258,7 +2258,9 @@ dfs_unuse_fields (tree binfo, void *data ATTRIBUTE_UNUSED)
fields = TYPENAME_TYPE_FULLNAME (type);
else if (TREE_CODE (type) == TYPEOF_TYPE)
fields = TYPEOF_TYPE_EXPR (type);
- else if (TREE_CODE (type) == TEMPLATE_TYPE_PARM)
+ else if (TREE_CODE (type) == TEMPLATE_TYPE_PARM
+ || TREE_CODE (type) == TEMPLATE_TEMPLATE_PARM
+ || TREE_CODE (type) == BOUND_TEMPLATE_TEMPLATE_PARM)
fields = TEMPLATE_TYPE_PARM_INDEX (type);
else
fields = TYPE_FIELDS (type);