From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8818 invoked by alias); 11 Jan 2008 14:12:10 -0000 Received: (qmail 8656 invoked by uid 48); 11 Jan 2008 14:11:27 -0000 Date: Fri, 11 Jan 2008 14:45:00 -0000 Message-ID: <20080111141127.8655.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/33964] [4.3 Regression] internal compiler error: in dependent_type_p, at cp/pt.c:15319 (vararg templates) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dgregor at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-01/txt/msg01049.txt.bz2 ------- 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 struct ugh {}; template struct ugh { }; 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