From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22378 invoked by alias); 4 Apr 2005 14:35:48 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 22283 invoked by uid 48); 4 Apr 2005 14:35:43 -0000 Date: Mon, 04 Apr 2005 14:35:00 -0000 Message-ID: <20050404143543.22282.qmail@sourceware.org> From: "pinskia at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050404142435.20746.yanliu@ca.ibm.com> References: <20050404142435.20746.yanliu@ca.ibm.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/20746] Incorrect return value for covariant return function returning null ptr X-Bugzilla-Reason: CC X-SW-Source: 2005-04/txt/msg00308.txt.bz2 List-Id: ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-04 14:35 ------- Test from 20747: extern "C" void *printf(char * ...); class A { public: virtual void f(); virtual A* i(); virtual void j(); int a; }; class B { public: virtual void f(); virtual void g(); virtual B* l(); virtual void k(); int b; }; class C : public A, public B{ public: virtual void f(); virtual void g(); virtual void h(); virtual C* l(); virtual C* i(); int b; }; main(){ C c; B* bp=&c; C* cp; bp=bp->l(); printf("\ncp=%p\n",bp); } void A::f(){} A* A::i(){} void A::j(){} void B::f(){} void B::g(){} void B::k(){} B* B::l(){} void C::f(){} void C::g(){} void C::h(){} C* C::i(){} C* C::l(){ printf("in C* C::l"); return 0; } -- What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20746