[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-11-01 Thread jason at gcc dot gnu dot org


--- Comment #4 from jason at gcc dot gnu dot org  2007-11-02 05:50 ---
Subject: Bug 30897

Author: jason
Date: Fri Nov  2 05:50:06 2007
New Revision: 129844

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=129844
Log:
PR c++/30897
* pt.c (push_template_decl_real): Set DECL_CONTEXT on template
template parms.
(lookup_template_class): Use it to get the outer template args
for instantiating one.

PR c++/29236
* pt.c (reduce_template_parm_level): tsubst the parameters
of a template template parm.

Added:
trunk/gcc/testsuite/g++.dg/template/ttp23.C
trunk/gcc/testsuite/g++.dg/template/ttp24.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c


-- 


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-10-29 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-08-06 15:04:53 |2007-10-29 19:17:28
   date||


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-09-23 Thread pcarlini at suse dot de


--- Comment #3 from pcarlini at suse dot de  2007-09-23 11:52 ---
By the way, the hunk of code at issue dates back to this time:

  http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00589.html

(and, by the way, I cannot find an explicit approval in the mailing list).

Anyway, the effect of removing it is fixing this PR and regressing only on the
testcase committed with it (template/ttp2.C).


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||mark at codesourcery dot
   ||com, pcarlini at suse dot de


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-03-22 Thread mmitchel at gcc dot gnu dot org


--- Comment #2 from mmitchel at gcc dot gnu dot org  2007-03-23 00:50 
---
This code in lookup_template_class:

-  /* Consider an example where a template template parameter declared as
-
-  template class T, class U = std::allocatorT  class TT
-
-The template parameter level of T and U are one level larger than
-of TT.  To proper process the default argument of U, say when an
-instantiation `TTint' is seen, we need to build the full
-arguments containing {int} as the innermost level.  Outer levels,
-available when not appearing as default template argument, can be
-obtained from `current_template_args ()'.
-
-Suppose that TT is later substituted with std::vector.  The above
-instantiation is `TTint, std::allocatorT ' with TT at
-level 1, and T at level 2, while the template arguments at level 1
-becomes {std::vector} and the inner level 2 is {int}.  */
-
-  if (current_template_parms)
-   arglist = add_to_template_args (current_template_args (), arglist);

is simply bogus; the current template arguments have nothing to do with the
situation.  It is this code which causes the crash.

I believe that the correct change is to remove that code and to make template
parameters for template template parameters restart at level 1.  So, in:

  template template typename T class A 
  class B {};

both T and A have level 1.  (Right now, T has level 2.)

T should have level 1 because, when instantiating A, that's what make sense.


-- 


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-03-04 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-02-20 Thread reichelt at gcc dot gnu dot org


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.3


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



[Bug c++/30897] [4.1/4.2/4.3 regression] ICE with default argument in template template parameter

2007-02-20 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-02-20 21:46 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-20 21:46:23
   date||


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