From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14983 invoked by alias); 28 Jun 2010 15:20:43 -0000 Received: (qmail 14935 invoked by uid 48); 28 Jun 2010 15:20:31 -0000 Date: Mon, 28 Jun 2010 15:20:00 -0000 Message-ID: <20100628152031.14934.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/44039] [4.5/4.6 regression] ICE: Segmentation fault on error recovery In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "paolo dot carlini at oracle dot com" 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-06/txt/msg02711.txt.bz2 ------- Comment #7 from paolo dot carlini at oracle dot com 2010-06-28 15:20 ------- I'm now pretty sure that the issue with locale::locale() is all there is to this PR. I also checked that the below patchlet avoids the ICE both for the original testcase and my snippet (it also passes the testsuite, but I'm not sure whether we could catch the problem earlier): Index: pt.c =================================================================== --- pt.c (revision 161491) +++ pt.c (working copy) @@ -10695,6 +10695,8 @@ tsubst_baselink (tree baselink, tree object_type, if (IDENTIFIER_TYPENAME_P (name)) name = mangle_conv_op_name_for_type (optype); baselink = lookup_fnfields (qualifying_scope, name, /*protect=*/1); + if (!baselink) + return error_mark_node; /* If lookup found a single function, mark it as used at this point. (If it lookup found multiple functions the one selected -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44039