From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18666 invoked by alias); 4 May 2012 03:35:39 -0000 Received: (qmail 18554 invoked by uid 22791); 4 May 2012 03:35:38 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,KHOP_THREADED,TW_BJ,TW_CX,TW_DC,TW_GX 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; Fri, 04 May 2012 03:35:26 +0000 From: "dimitrisdad at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/53225] static operator new in multiple inheritance carries incorrect type information for the class Date: Fri, 04 May 2012 03:35: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: minor X-Bugzilla-Who: dimitrisdad at gmail dot com 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: URL 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" 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-05/txt/msg00370.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53225 Thomas W. Lynch changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |http://stackoverflow.com/qu | |estions/10401579/operator-n | |ew-field-value-has-wrong-of | |fset-in-multiple-inheritanc | |e --- Comment #1 from Thomas W. Lynch 2012-05-04 03:35:22 UTC --- h$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6.1/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.1-9ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) g++ -g3 -std=c++11 -fPIC -I. -I../../include -c try_offsets.ex.cc See attached URL for source code and gdb memory map outputs. In the discussion there was some confusion between an class and an instance; however, the class exists before new is called, though, of course, the instance does not exist until new has finished. Operator new has information for the parent, though it was inherited into and called to allocate a child instance. The code sought to leave information for deletion in explicitly in the instance.