In mingw32 builds of the GCC 4.3 branch, the following code causes an ICE:

class blah {};

class __attribute__((dllimport)) vchild : virtual public blah
{
        vchild() {}
};

The dllimport attribute, the virtual inheritance, and the inline constructor
are key to causing the error. A Windows prompt session using the MinGW GCC
4.3.0 alpha follows:

> g++ -v
Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.3.0/configure
--enable-languages=c,ada,c++,fortran,java,objc,obj-c++
--disable-sjlj-exceptions --enable-shared --enable-libgcj --enable-libgomp
--with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug
--enable-concept-checks --enable-version-specific-runtime-libs --build=mingw32
--with-bugurl=http://www.mingw.org/bugs.shtml --prefix=/mingw
--with-gmp=/mingw/src/gcc/gmp-mpfr-root
--with-mpfr=/mingw/src/gcc/gmp-mpfr-root
--with-libiconv-prefix=/mingw/src/gcc/libiconv-root
Thread model: win32
gcc version 4.3.0 20080305 (alpha-testing) mingw-20080502 (GCC)

> g++ -c deltatest.ii
deltatest.ii:8: internal compiler error: in maybe_emit_vtables, at
cp/decl2.c:1678
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://www.mingw.org/bugs.shtml> for instructions.


-- 
           Summary: Inlined con/de-structor breaks in dllimport classes with
                    virtual inheritance
           Product: gcc
           Version: 4.3.1
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tdragon at tdragon dot net
 GCC build triplet: mingw32
  GCC host triplet: mingw32
GCC target triplet: mingw32


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

Reply via email to