From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6952 invoked by alias); 25 Sep 2007 00:09:37 -0000 Received: (qmail 6736 invoked by uid 48); 25 Sep 2007 00:09:25 -0000 Date: Tue, 25 Sep 2007 00:09:00 -0000 Message-ID: <20070925000925.6735.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/32400] [4.3 Regression] ICE in expand_or_defer_fn, at cp/semantics.c:3220 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia 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: 2007-09/txt/msg02042.txt.bz2 ------- Comment #11 from pinskia at gcc dot gnu dot org 2007-09-25 00:09 ------- Here is what the C++ standard says about linkage: A template name may have linkage (3.5). A template, a template explicit specialization (14.7.3), or a class template partial specialization shall not have C linkage. If the linkage of one of these is something other than C or C++, the behavior is implementation defined. Template definitions shall obey the one definition rule (3.2). So this is implementation defined as far as I can tell, and I think this is really a bad choice to accept this code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32400