From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31604 invoked by alias); 16 Apr 2012 19:36:06 -0000 Received: (qmail 31465 invoked by uid 22791); 16 Apr 2012 19:36:05 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 16 Apr 2012 19:35:46 +0000 From: "markus at trippelsdorf dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/53011] ice in verify_loop_structure: bad sizes Date: Mon, 16 Apr 2012 19:36:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: markus at trippelsdorf dot de X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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: 2012-04/txt/msg01326.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D53011 Markus Trippelsdorf changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markus at trippelsdorf dot | |de --- Comment #1 from Markus Trippelsdorf 201= 2-04-16 19:35:42 UTC --- Somewhat reduced: % cat test.ii extern "C" class WvFastString; typedef WvFastString& WvStringParm; struct WvFastString { ~WvFastString(); operator char* () {} }; class WvString : WvFastString {}; class WvAddr {}; class WvIPAddr : WvAddr {}; struct WvIPNet : WvIPAddr { bool is_default() {} }; template struct WvTraits_Helper { static void release(T *obj) { delete obj; } }; template struct WvTraits { static void release(From *obj) { WvTraits_Helper::release(obj); } }; struct WvLink { void *data; WvLink *next; bool autofree; WvLink(bool, int) : autofree() {} bool get_autofree() {} void unlink() { delete this; } }; struct WvListBase { WvLink head, *tail; WvListBase() : head(0, 0) {} }; template struct WvList : WvListBase { ~WvList() { zap(); } void zap(bool destroy =3D 1) { while (head.next) unlink_after(&head, destroy); } void unlink_after(WvLink *after, bool destroy) { WvLink *next =3D 0; T *obj =3D (destroy && next->get_autofree()) ?=20 static_cast(next->data) : 0; if (tail) tail =3D after; next->unlink(); WvTraits::release(obj); } }; typedef WvListWvStringListBase; class WvStringList : WvStringListBase {}; class WvSubProc { WvStringList last_args, env; }; void addroute(WvIPNet& dest, WvStringParm table) { if (dest.is_default() || (table !=3D "default")) WvSubProc checkProc; } % g++ -c -O1 test.ii test.ii: In function =E2=80=98void addroute(WvIPNet&, WvStringParm)=E2=80= =99: test.ii:64:1: internal compiler error: Segmentation fault