internal compiler error, optimizing empty function
GCC for 32-bit and 64-bit Windows with a real installer & updater
Brought to you by:
tdragon
I've met some 'internal compiler error'today. It was a C++11 code with some incomplete class methods. The funny thing is that this only happens when following conditions are met.
Give some optimization flag. (-O2, -O3, -Os crashed, -O0, -O1 didn't.) Not commenting empty class method.(code bellow.)
Rational& Rational::operator+=(const Rational& R) { } const Rational Rational::operator+(const Rational& R) const { } Rational& Rational::operator-=(const Rational& R) { } const Rational Rational::operator-(const Rational& R) const { }
g++ -std=c++0x -O2 -Wall -c -fmessage-length=0 -save-temps -v -o Rational.o "..\\Rational.cpp" g++ -std=c++0x -O3 -Wall -c -fmessage-length=0 -save-temps -v -o Rational.o "..\\Rational.cpp" g++ -std=c++0x -Os -Wall -c -fmessage-length=0 -save-temps -v -o Rational.o "..\\Rational.cpp"
..\Rational.cpp:424:1: internal compiler error: in expand_thunk, at cgraphunit.c:1700
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://tdm-gcc.tdragon.net/bugs for instructions.
OS : Windows 10 home, 64bit GCC version : TDM-GCC 5.1.0 (I installed 64bit version) Build tool : Eclipse CDT
Using built-in specs. COLLECT_GCC=g++ Target: x86_64-w64-mingw32 Configured with: ../../../src/gcc-5.1.0/configure --build=x86_64-w64-mingw32 --enable-targets=all --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-cxx-flags=-DWINPTHREAD_STATIC --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --disable-win32-registry --prefix=/mingw64tdm --with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1 --with-bugurl=http://tdm-gcc.tdragon.net/bugs Thread model: posix gcc version 5.1.0 (tdm64-1) COLLECT_GCC_OPTIONS='-std=c++11' '-Os' '-Wall' '-c' '-fmessage-length=0' '-save-temps' '-v' '-o' 'Rational.o' '-mtune=generic' '-march=x86-64' C:/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/5.1.0/cc1plus.exe -E -quiet -v -iprefix C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/ -D_REENTRANT ..\Rational.cpp -mtune=generic -march=x86-64 -std=c++11 -Wall -fmessage-length=0 -Os -fpch-preprocess -o Rational.ii ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/x86_64-w64-mingw32" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/backward" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../include" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/include-fixed" ignoring duplicate directory "C:/TDM-GCC-64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/include" \#include "..." search starts here: \#include <...> search starts here: C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++ C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/x86_64-w64-mingw32 C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/backward C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../include C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include-fixed C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/include End of search list. COLLECT_GCC_OPTIONS='-std=c++11' '-Os' '-Wall' '-c' '-fmessage-length=0' '-save-temps' '-v' '-o' 'Rational.o' '-mtune=generic' '-march=x86-64' C:/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/5.1.0/cc1plus.exe -fpreprocessed Rational.ii -quiet -dumpbase Rational.cpp -mtune=generic -march=x86-64 -auxbase-strip Rational.o -Os -Wall -std=c++11 -version -fmessage-length=0 -o Rational.s GNU C++11 (tdm64-1) version 5.1.0 (x86_64-w64-mingw32) compiled by GNU C version 5.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C++11 (tdm64-1) version 5.1.0 (x86_64-w64-mingw32) compiled by GNU C version 5.1.0, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 912f8e56a1253e7d16da34ab477cf469 ..\Rational.cpp: In member function 'sjusju::Rational& sjusju::Rational::operator+=(const sjusju::Rational&)': ..\Rational.cpp:211:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ ..\Rational.cpp: In member function 'const sjusju::Rational sjusju::Rational::operator+(const sjusju::Rational&) const': ..\Rational.cpp:216:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ ..\Rational.cpp: In member function 'sjusju::Rational& sjusju::Rational::operator-=(const sjusju::Rational&)': ..\Rational.cpp:221:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ ..\Rational.cpp: In member function 'const sjusju::Rational sjusju::Rational::operator-(const sjusju::Rational&) const': ..\Rational.cpp:226:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ ..\Rational.cpp: In member function 'sjusju::Rational& sjusju::Rational::operator-=(const sjusju::Rational&)': ..\Rational.cpp:424:1: internal compiler error: in expand_thunk, at cgraphunit.c:1700 } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://tdm-gcc.tdragon.net/bugs> for instructions.
The file I uploaded is from -Os flag. (I don't think this makes difference, but in case you need.)
Anonymous