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



             Bug #: 55543

           Summary: diamond shaped inheritance involving strings leads to

                    crashing executables (MinGW, 32 bit)

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: martin.giesek...@uos.de





Created attachment 28837

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28837

source file to reproduce the issue



When I compile the attached code with g++, mingw32 (gcc 4.7.2), I get an

executable that crashes with the following exception:



  terminate called after throwing an instance of 'std::length_error'

    what():  basic_string::_S_create



This only happens for mingw32. A 64 bit build of the same code works correctly.

So do all 32/64 bit builds for Linux targets I've tested.



Command line:

g++ --save-temps -v -m32 inherit.cpp





Message output:



Built by Equation Solution <http://www.Equation.com>.

Using built-in specs.

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=c:/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/lto-wrapper.exe

Target: x86_64-w64-mingw32

Configured with: ../gcc-4.7.2-mingw/configure --host=x86_64-w64-mingw32

--build=x86_64-unknown-linux-gnu --target=x86_64-w64-mingw32

--prefix=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gcc/4.7.2

--with-sysroot=/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.7.2

--with-gcc --with-gnu-ld --with-gnu-as

--with-gmp=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gmp

--with-mpfr=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpfr

--with-mpc=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpc

--with-cloog=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/cloog

--with-ppl=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/ppl

--with-host-libstdcxx='-lstdc++ -lsupc++ -lm' --enable-cloog-backend=ppl

--enable-targets=i686-w64-mingw32,x86_64-w64-mingw32 --enable-lto

--enable-languages=c,c++,fortran --enable-libgomp --enable-threads=win32

--enable-static --enable-shared=lto-plugin --enable-plugins --enable-ld=yes

--enable-libquadmath --enable-libquadmath-support --disable-nls --disable-tls

--disable-win32-registry

Thread model: win32

gcc version 4.7.2 (GCC) 

COLLECT_GCC_OPTIONS='-save-temps' '-v' '-m32' '-mtune=generic' '-march=x86-64'

 c:/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/cc1plus.exe -E -quiet -v

-imultilib 32 -iprefix c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/

-U_REENTRANT inherit.cpp -m32 -mtune=generic -march=x86-64 -fpch-preprocess -o

inherit.ii

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2"

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/x86_64-w64-mingw32/32"

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/backward"

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/include"

ignoring nonexistent directory

"/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.7.2/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gcc/4.7.2/lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include"

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/include-fixed"

ignoring duplicate directory

"c:/gcc/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include"

ignoring nonexistent directory

"/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.7.2/mingw/include"

#include "..." search starts here:

#include <...> search starts here:

 c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2



c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/x86_64-w64-mingw32/32



c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/backward

 c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/include

 c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/include-fixed



c:\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include

End of search list.

COLLECT_GCC_OPTIONS='-save-temps' '-v' '-m32' '-mtune=generic' '-march=x86-64'

 c:/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/cc1plus.exe -fpreprocessed

inherit.ii -quiet -dumpbase inherit.cpp -m32 -mtune=generic -march=x86-64

-auxbase inherit -version -o inherit.s

GNU C++ (GCC) version 4.7.2 (x86_64-w64-mingw32)

    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.0.0, MPC

version 0.9

warning: GMP header version 5.0.5 differs from library version 5.0.1.

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

GNU C++ (GCC) version 4.7.2 (x86_64-w64-mingw32)

    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.0.0, MPC

version 0.9

warning: GMP header version 5.0.5 differs from library version 5.0.1.

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072

Compiler executable checksum: 0b3cd9e378660c38a8a80567400ff92f

COLLECT_GCC_OPTIONS='-save-temps' '-v' '-m32' '-mtune=generic' '-march=x86-64'



c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/as.exe

-v --32 -o inherit.o inherit.s

GNU assembler version 2.22.52 (x86_64-w64-mingw32) using BFD version (GNU

Binutils) 2.22.52.20120723

COMPILER_PATH=c:/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/;c:/gcc/bin/../libexec/gcc/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/

EQ_LIBRARY_PATH=c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/32/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib32/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib32/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/;c:/gcc/bin/../lib/gcc/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/;c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../

COLLECT_GCC_OPTIONS='-save-temps' '-v' '-m32' '-mtune=generic' '-march=x86-64'

 c:/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/collect2.exe

--sysroot=/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.7.2 -m

i386pe -Bdynamic

c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib32/crt2.o

c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib32/crtbegin.o

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/32

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib32

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib32

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2 -Lc:/gcc/bin/../lib/gcc

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib

-Lc:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../.. inherit.o -lstdc++

-lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32

-lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt

c:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib32/crtend.o

Reply via email to