From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11166 invoked by alias); 1 Jul 2010 16:03:02 -0000 Received: (qmail 9074 invoked by uid 48); 1 Jul 2010 16:02:39 -0000 Date: Thu, 01 Jul 2010 16:03:00 -0000 Subject: [Bug c++/44753] New: [4.5 Regression] class partial specialization error X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rodolfo at rodsoft 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: 2010-07/txt/msg00091.txt.bz2 The following code compiles on gcc-4.2/4.3/4.4 but doesn't on gcc-4.5, with error: aggregate ‘foo, 0> bar’ has incomplete type and cannot be defined template struct identity { typedef T type; }; template struct foo {}; template struct foo, A> {}; int main() { foo,0> bar; // error here } g++ somehow is messed up because foo is defined, and it should pick the partial specialization. If we comment the latter, it compiles, picking the main foo definition. -- Summary: [4.5 Regression] class partial specialization error Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rodolfo at rodsoft dot org GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44753