This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/53225] static operator new in multiple inheritance carries incorrect type information for the class
- From: "dimitrisdad at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 04 May 2012 03:35:22 +0000
- Subject: [Bug c++/53225] static operator new in multiple inheritance carries incorrect type information for the class
- Auto-submitted: auto-generated
- References: <bug-53225-4@http.gcc.gnu.org/bugzilla/>
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.