]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/42218 (Broken diagnostic: 'tree_vec' not supported by pp_c_expression)
authorDodji Seketeli <dodji@redhat.com>
Fri, 4 Dec 2009 07:38:42 +0000 (07:38 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Fri, 4 Dec 2009 07:38:42 +0000 (08:38 +0100)
Fix PR c++/42218

gcc/cp/ChangeLog:
PR c++/42218
* cxx-pretty-print.c (pp_cxx_unqualified_id): Print only innermost
template arguments.

gcc/testsuite/ChangeLog:
PR c++/42218
* g++.dg/other/error33.C: New test.

From-SVN: r154972

gcc/cp/ChangeLog
gcc/cp/cxx-pretty-print.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/error33.C [new file with mode: 0644]

index cdbd1c48a1f460ee10ddcc85c46f6f8d7ae1af9d..0c96a780b782932372725054cc8dfaaa6100e759 100644 (file)
@@ -1,3 +1,9 @@
+2009-12-04  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42218
+       * cxx-pretty-print.c (pp_cxx_unqualified_id): Print only innermost
+       template arguments.
+
 2009-12-03  Jason Merrill  <jason@redhat.com>
 
        PR c++/41611
index 305b7edad3aef4c4fc4c4f59f0bd43615e8a504e..5ef84fe521796c72f1596b09563ab2db7c23a560 100644 (file)
@@ -203,7 +203,8 @@ pp_cxx_unqualified_id (cxx_pretty_printer *pp, tree t)
       if (CLASS_TYPE_P (t) && CLASSTYPE_USE_TEMPLATE (t))
        {
          pp_cxx_begin_template_argument_list (pp);
-         pp_cxx_template_argument_list (pp, CLASSTYPE_TI_ARGS (t));
+         pp_cxx_template_argument_list (pp, INNERMOST_TEMPLATE_ARGS
+                                                 (CLASSTYPE_TI_ARGS (t)));
          pp_cxx_end_template_argument_list (pp);
        }
       break;
index cc9a74e51db4f82e762af857ddbbb11199e838ca..956d77808f693c3b5e61c272d9c0a5c70f9db183 100644 (file)
@@ -1,3 +1,8 @@
+2009-12-04  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/42218
+       * g++.dg/other/error33.C: New test.
+
 2009-12-03  Jason Merrill  <jason@redhat.com>
 
        * g++.dg/abi/guard2.C: Run on *-*-linux* rather than x86-*-*
diff --git a/gcc/testsuite/g++.dg/other/error33.C b/gcc/testsuite/g++.dg/other/error33.C
new file mode 100644 (file)
index 0000000..48fca70
--- /dev/null
@@ -0,0 +1,11 @@
+// Contributed by Dodji Seketeli <dodji@redhat.com>
+// Origin: PR c++/42218
+// { dg-do compile }
+
+template<int> struct A
+{
+      template<int> struct B;
+};
+
+int i = A<0>::B<0>::X::Y; // { dg-error "'A<0>::B<0>::X' has not been declared" }
+