This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
- From: "dgregor at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jan 2008 14:11:27 -0000
- Subject: [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates)
- References: <bug-33964-13491@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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