From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12162 invoked by alias); 14 Feb 2014 20:19:08 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 12147 invoked by uid 89); 14 Feb 2014 20:19:07 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail-gw-02.oit.duke.edu Received: from mx-gw-02.oit.duke.edu (HELO mail-gw-02.oit.duke.edu) (152.3.189.228) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Fri, 14 Feb 2014 20:19:06 +0000 Received: from mail-gw-02.oit.duke.edu (localhost.localdomain [127.0.0.1]) by localhost (Email Security Appliance) with SMTP id 7FCFD2367CEF_2FE7A38B; Fri, 14 Feb 2014 20:19:04 +0000 (GMT) Received: from [192.168.1.5] (cpe-065-190-177-158.nc.res.rr.com [65.190.177.158]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by mail-gw-02.oit.duke.edu (Sophos Email Appliance) with ESMTPSA id 56A762367D38_2FE7A38F; Fri, 14 Feb 2014 20:19:04 +0000 (GMT) Message-ID: <52FE7A37.2020305@duke.edu> Date: Fri, 14 Feb 2014 20:19:00 -0000 From: Benjamin Redelings User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.3.0 MIME-Version: 1.0 To: Jan Hubicka CC: gcc-patches@gcc.gnu.org Subject: pure virtual method called References: <4CB4C377.3030305@nescent.org> In-Reply-To: <4CB4C377.3030305@nescent.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2014-02/txt/msg00947.txt.bz2 Hi Jan, I hope to report a bug soon, but in the meantime I wanted to let you know that for the last month or so, the 4.9 branch has (I think) a bug at O3, where my program gets: pure virtual method called terminate called without an active exception Aborted 4.8 works fine. I am guessing this is related to your devirt work. I haven't been able to produce a reduce testcase yet (sorry!), but here is some code that illustrates the C++ type for the object whose virtual table is (?) messed up. (Note: this code compiles but does NOT crash.) Again, sorry for not having a testcase. I'll make one soon. Hopefully it is helpful to know that bugs still exist. -BenRI #include class Object { virtual Object* clone() const =0; }; template class Box: public Object, public T { public: Box* clone() const {return new Box(*this);} }; template using Vector = Box>; int main() { Vector v; v.clone(); } -BenRI P.S. The bug exists in debian gcc snapshots taken on 2014-02-12 and 2014-01-22, Linux AMD64.