https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66617
--- Comment #4 from DB <db0451 at gmail dot com> --- Attaching verbose output and tempfiles as recommended by bug reporting guide. $ gcc -v -save-temps -std=c++11 virtual2.cpp -o virtual2.exe Using built-in specs. COLLECT_GCC=C:\msys64\mingw64\bin\gcc.exe COLLECT_LTO_WRAPPER=C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ../gcc-4.9.2/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --with-gxx-include-dir=/mingw64/include/c++/4.9.2 --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-cloog-backend=isl --enable-version-specific-runtime-libs --disable-cloog-version-check --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-cloog=/mingw64 --with-pkgversion='Rev5, Built by MSYS2 project' --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 4.9.2 (Rev5, Built by MSYS2 project) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++11' '-o' 'virtual2.exe' '-mtune=generic' '-march=x86-64' C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/cc1plus.exe -E -quiet -v -D_REENTRANT virtual2.cpp -mtune=generic -march=x86-64 -std=c++11 -fpch-preprocess -o virtual2.ii ignoring nonexistent directory "/mingw64/include" ignoring duplicate directory "C:/msys64/mingw64/x86_64-w64-mingw32/include" #include "..." search starts here: #include <...> search starts here: C:/msys64/mingw64/include/c++/4.9.2 C:/msys64/mingw64/include/c++/4.9.2/x86_64-w64-mingw32 C:/msys64/mingw64/include/c++/4.9.2/backward C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/include C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../include C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/include-fixed C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x86_64-w64-mingw32/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++11' '-o' 'virtual2.exe' '-mtune=generic' '-march=x86-64' C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/4.9.2/cc1plus.exe -fpreprocessed virtual2.ii -quiet -dumpbase virtual2.cpp -mtune=generic -march=x86-64 -auxbase virtual2 -std=c++11 -version -o virtual2.s GNU C++ (Rev5, Built by MSYS2 project) version 4.9.2 (x86_64-w64-mingw32) compiled by GNU C version 4.9.2, GMP version 6.0.0, MPFR version 3.1.2-p11, MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++ (Rev5, Built by MSYS2 project) version 4.9.2 (x86_64-w64-mingw32) compiled by GNU C version 4.9.2, GMP version 6.0.0, MPFR version 3.1.2-p11, MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 31108f4eb997d1c5310b0f90916e0ed9 virtual2.cpp: In constructor 'Right_Bottom::Right_Bottom(int, int, int, int)': virtual2.cpp:51:6: error: cannot allocate an object of abstract type 'Left_Bottom' d{d} ^ virtual2.cpp:20:8: note: because the following virtual functions are pure within 'Left_Bottom': struct Left_Bottom: public virtual Left_Top ^ virtual2.cpp:12:15: note: virtual void Left_Top::pure_virtual() const virtual void pure_virtual() const = 0; ^ virtual2.cpp:51:6: error: cannot allocate an object of abstract type 'Right_Top' d{d} ^ virtual2.cpp:31:8: note: because the following virtual functions are pure within 'Right_Top': struct Right_Top: public virtual Left_Top ^ virtual2.cpp:12:15: note: virtual void Left_Top::pure_virtual() const virtual void pure_virtual() const = 0; ^