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++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)



------- Comment #4 from dgregor at gcc dot gnu dot org  2008-01-11 14:11 -------
This code is ill-formed, and should be rejected because "Args" cannot be
deduced from "typename Args::is_applied". Interestingly enough, this problem
actually has nothing to do with variadic templates: take away the parameter
pack and we still accept this ill-formed code:

  template<typename T>
  struct ugh {};

  template<typename T> struct ugh<typename T::is_applied> { };

The problem is that, when we're marking template parameters in
process_partial_specialization via for_each_template_parm, we mark *all*
template parameters, not just those that are in deduced contexts. I'm working
on a fix now...


-- 

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|ice-on-invalid-code         |accepts-invalid
   Last reconfirmed|2007-11-19 04:44:27         |2008-01-11 14:11:27
               date|                            |


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


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