[Bug c++/53225] static operator new in multiple inheritance carries incorrect type information for the class

dimitrisdad at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri May 4 03:35:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53225

Thomas W. Lynch <dimitrisdad at gmail dot com> 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 <dimitrisdad at gmail dot com> 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.



More information about the Gcc-bugs mailing list