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

--- Comment #1 from Rodrigo Rivas <rodrigorivascosta at gmail dot com> 
2010-11-08 17:07:11 UTC ---
Sorry for the previous empty body... my dog ate my keyboard ;-)

Anyway, the following code fails when compiled with MinGW:

$ i686-mingw32msvc-g++ -v
Using built-in specs.
COLLECT_GCC=i686-mingw32msvc-g++
COLLECT_LTO_WRAPPER=/home/rodrigo/local/mingw/libexec/gcc/i686-mingw32msvc/4.6.0/lto-wrapper
Target: i686-mingw32msvc
Configured with: ../configure --prefix=/home/rodrigo/local/mingw
--target=i686-mingw32msvc --build=i686-linux --with-sysroot=/home/rodrigo/local
--enable-lto --enable-languages=c,c++,lto --enable-multilib=no
--with-system-zlib=yes --enable-threads --disable-nls --with-arch-32=i686
--disable-sjlj-exceptions
Thread model: win32
gcc version 4.6.0 20101108 (experimental) (GCC) 


*** File: test.h
#ifndef TEST_H_INCLUDED
#define TEST_H_INCLUDED

struct VBase
{
    virtual ~VBase()
    {
    }
};

struct MyClass : virtual public VBase
{
};

#endif /* TEST_H_INCLUDED */

*** File: test.cpp
#include "test.h"

int main()
{
    MyClass x;
    return 0;
}

*** File: foo.cpp
#include "test.h"

int main()
{
    MyClass x;
    return 0;
}

*** File: bar.cpp
#include "test.h"

int bar()
{
    MyClass x;
    return 0;
}


$ i686-mingw32msvc-g++ -flto *.cpp
test.h:11:8: error: '_ZTv0_n12_N7MyClassD1Ev' has already been defined
test.h:11:8: note: previously defined here
test.h:11:8: error: '_ZTv0_n12_N7MyClassD0Ev' has already been defined
test.h:11:8: note: previously defined here
lto-wrapper: i686-mingw32msvc-g++ returned 1 exit status
collect2: lto-wrapper returned 1 exit status

However, with a native build of the exactly same GCC revision it compiles and
links correctly.

This *may* be a duplicate of Bug 45343.

Regards.
Rodrigo

Reply via email to