public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/33943]  New: ICE with partial specialization on vararg template template parameter
@ 2007-10-29 18:12 eric dot niebler at gmail dot com
  2007-11-19  5:03 ` [Bug c++/33943] [4.3 Regression] " pinskia at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: eric dot niebler at gmail dot com @ 2007-10-29 18:12 UTC (permalink / raw)
  To: gcc-bugs

Compiled with -std=c++0x, version g++ (GCC) 4.3.0 20070921 (experimental), the
following program causes an ICE.

{{{
template<typename... A>
struct foo {};

template<typename A0, typename... A1>
struct bar {};

template<typename U>
struct baz;

template<template<typename...> class T, typename... U>
struct baz< T<U...> >
{};

template<template<typename, typename...> class T, typename U, typename... V>
struct baz< T<U, V...> >
{};

baz< foo<int, short> > b1;
baz< bar<int, short> > b2;
}}}


-- 
           Summary: ICE with partial specialization on vararg template
                    template parameter
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: eric dot niebler at gmail dot com


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
@ 2007-11-19  5:03 ` pinskia at gcc dot gnu dot org
  2007-11-27  5:53 ` mmitchel at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-11-19  5:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2007-11-19 05:03 -------
Confirmed, the ICE is an error recovery regression.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |error-recovery, ice-on-
                   |                            |invalid-code
   Last reconfirmed|0000-00-00 00:00:00         |2007-11-19 05:03:36
               date|                            |
            Summary|ICE with partial            |[4.3 Regression] ICE with
                   |specialization on vararg    |partial specialization on
                   |template template parameter |vararg template template
                   |                            |parameter
   Target Milestone|---                         |4.3.0


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
  2007-11-19  5:03 ` [Bug c++/33943] [4.3 Regression] " pinskia at gcc dot gnu dot org
@ 2007-11-27  5:53 ` mmitchel at gcc dot gnu dot org
  2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-11-27  5:53 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=33943


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
  2007-11-19  5:03 ` [Bug c++/33943] [4.3 Regression] " pinskia at gcc dot gnu dot org
  2007-11-27  5:53 ` mmitchel at gcc dot gnu dot org
@ 2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
  2007-12-15  8:31 ` dgregor at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-02 21:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2007-12-02 21:03 -------
 Mark, this is really only an error recovery regression. Can you relook at the
current priority?

Thanks,
Andrew Pinski


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mmitchel at gcc dot gnu dot
                   |                            |org


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (2 preceding siblings ...)
  2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
@ 2007-12-15  8:31 ` dgregor at gcc dot gnu dot org
  2007-12-15 12:14 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-15  8:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dgregor at gcc dot gnu dot org  2007-12-15 08:31 -------
This is valid code, so it's more serious than we thought.


-- 

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
           Keywords|error-recovery, ice-on-     |ice-on-valid-code
                   |invalid-code                |
   Last reconfirmed|2007-11-19 05:03:36         |2007-12-15 08:31:29
               date|                            |


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (3 preceding siblings ...)
  2007-12-15  8:31 ` dgregor at gcc dot gnu dot org
@ 2007-12-15 12:14 ` pinskia at gcc dot gnu dot org
  2007-12-16 21:11 ` mmitchel at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-15 12:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from pinskia at gcc dot gnu dot org  2007-12-15 12:13 -------
The code is still invalid C++98 so the regression is still just an error
recovery issue :).


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |error-recovery, ice-on-
                   |                            |invalid-code


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (4 preceding siblings ...)
  2007-12-15 12:14 ` pinskia at gcc dot gnu dot org
@ 2007-12-16 21:11 ` mmitchel at gcc dot gnu dot org
  2007-12-16 21:28 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-12-16 21:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from mmitchel at gcc dot gnu dot org  2007-12-16 21:11 -------
I disagree with Andrew's Comment #4.  Once we implement a feature in the
compiler, users should reasonably expect it to be correct.  We cannot
simultaneously say "Look, we have exciting new C++0x features!" and "Oh, you
found a bug?  That's not very serious, since it's just a new C++0x feature."

Thus, I've upgraded this to P1.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P1


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (5 preceding siblings ...)
  2007-12-16 21:11 ` mmitchel at gcc dot gnu dot org
@ 2007-12-16 21:28 ` pinskia at gcc dot gnu dot org
  2007-12-16 21:57 ` pcarlini at suse dot de
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-12-16 21:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from pinskia at gcc dot gnu dot org  2007-12-16 21:27 -------
(In reply to comment #5)
> I disagree with Andrew's Comment #4.  Once we implement a feature in the
> compiler, users should reasonably expect it to be correct.  We cannot
> simultaneously say "Look, we have exciting new C++0x features!" and "Oh, you
> found a bug?  That's not very serious, since it's just a new C++0x feature."

I seriously disagree, this is not a regression in that code never was supported
before and really C++0x support should not block the release just because
people feel this is an important feature of 4.3.0.  Also another thing is that
we have some ODR violations in libstdc++ that the libstdc++ folks have not
replied to me about yet.

See http://gcc.gnu.org/ml/libstdc++/2007-08/msg00032.html and some others.


-- 


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (6 preceding siblings ...)
  2007-12-16 21:28 ` pinskia at gcc dot gnu dot org
@ 2007-12-16 21:57 ` pcarlini at suse dot de
  2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
  2007-12-18 22:16 ` dgregor at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: pcarlini at suse dot de @ 2007-12-16 21:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from pcarlini at suse dot de  2007-12-16 21:57 -------
(In reply to comment #6)
  Also another thing is that
> we have some ODR violations in libstdc++ that the libstdc++ folks have not
> replied to me about yet.

Because such a thing doesn't exist. If the user wants to experiment (note,
experiment, we are talking about experimental implementations, I think the
announcement is pretty clear about that) with some library features that will
be likely available in the next C++ standard, he can compile with -std=c++0x.
Then he will be in the realm of another language, not the same as C++03. ODR
between what? Between a language and a different (eminently experimental)
language? By the way, the real library for the next standard will be something
very different (we haven't yet started on it), will badly break ABI, API and
everything imaginable.


-- 


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


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (7 preceding siblings ...)
  2007-12-16 21:57 ` pcarlini at suse dot de
@ 2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
  2007-12-18 22:16 ` dgregor at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-18 21:20 UTC (permalink / raw)
  To: gcc-bugs



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

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=33943


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

* [Bug c++/33943] [4.3 Regression] ICE with partial specialization on vararg template template parameter
  2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
                   ` (8 preceding siblings ...)
  2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
@ 2007-12-18 22:16 ` dgregor at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: dgregor at gcc dot gnu dot org @ 2007-12-18 22:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 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=33943


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

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

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-29 18:12 [Bug c++/33943] New: ICE with partial specialization on vararg template template parameter eric dot niebler at gmail dot com
2007-11-19  5:03 ` [Bug c++/33943] [4.3 Regression] " pinskia at gcc dot gnu dot org
2007-11-27  5:53 ` mmitchel at gcc dot gnu dot org
2007-12-02 21:03 ` pinskia at gcc dot gnu dot org
2007-12-15  8:31 ` dgregor at gcc dot gnu dot org
2007-12-15 12:14 ` pinskia at gcc dot gnu dot org
2007-12-16 21:11 ` mmitchel at gcc dot gnu dot org
2007-12-16 21:28 ` pinskia at gcc dot gnu dot org
2007-12-16 21:57 ` pcarlini at suse dot de
2007-12-18 21:20 ` dgregor at gcc dot gnu dot org
2007-12-18 22:16 ` 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).