This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/32125] New: [4.3 regression] ICE with invalid specialization of variadic template


The following invalid code snippet triggers an ICE on mainline:

========================================================
template<typename...> struct A;

template<typename...T> struct A<T*>
{
  A();
  A(T);
};
========================================================

bug.cc:3: error: parameter packs not expanded with `...':
bug.cc:3: note:         'T'
bug.cc:4: error: parameter packs not expanded with `...':
bug.cc:4: note:         'T'
bug.cc:5: error: parameter packs not expanded with `...':
bug.cc:5: note:         'T'
bug.cc:6: error: parameter packs not expanded with `...':
bug.cc:6: note:         'T'
bug.cc:6: error: parameter packs not expanded with `...':
bug.cc:6: note:         'T'
bug.cc:6: internal compiler error: tree check: expected class 'type', have
'exceptional' (error_mark) in add_method, at cp/class.c:1029
Please submit a full bug report, [etc.]

Just one nit: Do we have to emit an error message for every line
(sometimes even twice)?

Btw, the quotation should also be fixed like in the patch below
(I haven't time to test the patch, though):

=================================================================
--- gcc/gcc/cp/pt.c     2007-05-25 22:27:32 +0200
+++ gcc/gcc/cp/pt.c     2007-05-27 19:23:23 +0200
@@ -2622,7 +2622,7 @@ check_for_bare_parameter_packs (tree t)

   if (parameter_packs) 
     {
-      error ("parameter packs not expanded with `...':");
+      error ("parameter packs not expanded with %<...%>:");
       while (parameter_packs)
         {
           tree pack = TREE_VALUE (parameter_packs);
=================================================================


-- 
           Summary: [4.3 regression] ICE with invalid specialization of
                    variadic template
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code, error-recovery, monitored
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: reichelt at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32125


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]