public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
@ 2007-06-30 16:48 ` reichelt at gcc dot gnu dot org
  2007-08-10  0:33 ` mmitchel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2007-06-30 16:48 UTC (permalink / raw)
  To: gcc-bugs



-- 

reichelt at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.3.0


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565]  New: [4.3 regression] ICE with specialization of variadic template
@ 2007-06-30 16:48 reichelt at gcc dot gnu dot org
  2007-06-30 16:48 ` [Bug c++/32565] " reichelt at gcc dot gnu dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2007-06-30 16:48 UTC (permalink / raw)
  To: gcc-bugs

The following valid code snippet triggers an ICE on mainline:

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

template<template<int...> class T> struct A<T<0> > {};

template<int> struct B;

A<B<0> > a;
============================================================

bug.cc:7: internal compiler error: tree check: expected class 'expression',
have 'constant' (integer_cst) in unify, at cp/pt.c:12796
Please submit a full bug report, [etc.]


A similar testcase generates a slightly different error message:

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

template<template<typename...> class T> struct A<T<int> > {};

template<typename> struct B;

A<B<int> > a;
============================================================

bug.cc:7: internal compiler error: tree check: expected class 'expression',
have 'type' (integer_type) in unify, at cp/pt.c:12796
Please submit a full bug report, [etc.]


-- 
           Summary: [4.3 regression] ICE with specialization of variadic
                    template
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, 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=32565


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
  2007-06-30 16:48 ` [Bug c++/32565] " reichelt at gcc dot gnu dot org
@ 2007-08-10  0:33 ` mmitchel at gcc dot gnu dot org
  2007-09-27 12:12 ` jakub at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-08-10  0:33 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
  2007-06-30 16:48 ` [Bug c++/32565] " reichelt at gcc dot gnu dot org
  2007-08-10  0:33 ` mmitchel at gcc dot gnu dot org
@ 2007-09-27 12:12 ` jakub at gcc dot gnu dot org
  2007-12-07 20:14 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu dot org @ 2007-09-27 12:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jakub at gcc dot gnu dot org  2007-09-27 12:12 -------
Created an attachment (id=14255)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14255&action=view)
gcc43-pr32565.patch

WIP patch to fix this.  As shown in the testcase, I believe trying to handle
ARGUMENT_PACK_P (parm) && !ARGUMENT_PACK_P (arg) in unify in unify is bad,
as parm may need more than one argument.  So IMHO this has to be handled
one level higher where we have access to all the arguments.

I don't know what exactly to do with argument packs which have PACK_EXPANSION_P
at the end (can you come up with a testcase for that) and especially if such
ARGUMENT_PACK_P is not the last template argument (that is only possible for
function templates, right)?


-- 


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2007-09-27 12:12 ` jakub at gcc dot gnu dot org
@ 2007-12-07 20:14 ` rguenth at gcc dot gnu dot org
  2007-12-15  8:29 ` dgregor at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-12-07 20:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rguenth at gcc dot gnu dot org  2007-12-07 20:14 -------
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-12-07 20:14:04
               date|                            |


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2007-12-07 20:14 ` rguenth at gcc dot gnu dot org
@ 2007-12-15  8:29 ` dgregor at gcc dot gnu dot org
  2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
  2007-12-18 22:15 ` dgregor at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-15  8:29 UTC (permalink / raw)
  To: gcc-bugs



-- 

dgregor at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dgregor at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2007-12-07 20:14:04         |2007-12-15 08:29:12
               date|                            |


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2007-12-15  8:29 ` dgregor at gcc dot gnu dot org
@ 2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
  2007-12-18 22:15 ` dgregor at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-18 21:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dgregor at gcc dot gnu dot org  2007-12-18 21:19 -------
Subject: Bug 32565

Author: dgregor
Date: Tue Dec 18 21:19:41 2007
New Revision: 131041

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131041
Log:
2007-12-18  Douglas Gregor  <doug.gregor@gmail.com>
            Jakub Jelinek  <jakub@redhat.com>

        PR c++/32565
        PR c++/33943
        PR c++/33965
        * pt.c (template_template_parm_bindings_ok_p): New; verifies
        bindings of template template parameters after all template
        arguments have been deduced.
        (coerce_template_parms): Don't complain when COMPLAIN doesn't
        include tf_error.
        (fn_type_unification): Use template_template_parm_bindings_ok_p. 
        (unify): Deal with variadic, bound template template parameters. 
        (get_class_bindings): Use template_template_parm_bindings_ok_p.         

2007-12-18  Douglas Gregor  <doug.gregor@gmail.com>
            Jakub Jelinek  <jakub@redhat.com>

        PR c++/32565
        PR c++/33943
        PR c++/33965
        * g++.dg/cpp0x/variadic86.C: New.
        * g++.dg/cpp0x/variadic87.C: New.
        * g++.dg/cpp0x/variadic84.C: New.
        * g++.dg/cpp0x/variadic85.C: New.
        * g++.dg/template/ttp25.C: New.



Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic84.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic85.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic86.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic87.C
    trunk/gcc/testsuite/g++.dg/template/ttp25.C
Modified:
    trunk/gcc/cp/pt.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/32565] [4.3 regression] ICE with specialization of variadic template
  2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
@ 2007-12-18 22:15 ` dgregor at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-18 22:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dgregor at gcc dot gnu dot org  2007-12-18 22:15 -------
Fixed on the trunk


-- 

dgregor at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-12-18 22:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-30 16:48 [Bug c++/32565] New: [4.3 regression] ICE with specialization of variadic template reichelt at gcc dot gnu dot org
2007-06-30 16:48 ` [Bug c++/32565] " reichelt at gcc dot gnu dot org
2007-08-10  0:33 ` mmitchel at gcc dot gnu dot org
2007-09-27 12:12 ` jakub at gcc dot gnu dot org
2007-12-07 20:14 ` rguenth at gcc dot gnu dot org
2007-12-15  8:29 ` dgregor at gcc dot gnu dot org
2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
2007-12-18 22:15 ` dgregor at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).