http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56926
--- Comment #6 from asmwarrior <asmwarrior at gmail dot com> --- It is very simple to reproduce this bug. Here is the steps I do 1, download the GCC 4.8.2 from MinGW-w64 site, I'm using i686-4.8.2-release-posix-dwarf-rt_v3-rev1 2, download the boost source package, I'm using boost_1_55_0.7z download from boost official site, extract its source to some folder like: D:\mingw-builds\boost_1_55_0. (Note, no need to build boost library, only the boost header files are needed for testing) 3, create a simple file named "pch.h", which contains following: -------------------- #ifndef pch_h #define pch_h #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor" #include <boost/asio.hpp> #include <boost/iostreams/filtering_stream.hpp> #include <boost/program_options.hpp> #include <boost/thread.hpp> #pragma GCC diagnostic pop #endif -------------------- 4, create a simple "test.cpp" file, which contains following: -------------------- #include "pch.h" int main() { int a; int b; int c; a++; b++; } -------------------- 5, build the pch file by running the command. g++.exe -Wall -fexceptions -g -march=core2 -Wall -ID:\mingw-builds\boost_1_55_0 -c pch.h -o pch.h.gch 6, now, you will see a file named "pch.h.gch" was generated, its size is bigger than 200M. 7, compile the test.cpp file by running the command: g++.exe -v -Wall -fexceptions -g -march=core2 -Wall -ID:\mingw-builds\boost_1_55_0 -Winvalid-pch -include pch.h -c test.cpp -o test.o 8, I see some verbose messages, but no "test.o" file was generated in the working directory, also I see no crash dialog shown. So, this is indeed a bug. Now, if you comment out some lines in the pch.h file, e.g. only leave the first #include directive: #include <boost/asio.hpp>, and comment out the later three include directive, and run the steps again, you get a 47M pch.h.gch and a 206K test.o file. I try to use GDB to catch the errors, but failed. Try use GDB, I did such thing: gdb g++.exe [enter] then set args -v -Wall -fexceptions -g -march=core2 -Wall -ID:\mingw-builds\boost_1_55_0 -Winvalid-pch -include pch.h -c test.cpp -o test.o [enter] then r [enter] GDB can't catch anything, just the same as I run the command in the Command line, the last message from GDB is: [Inferior 1 (process 2000) exited with code 01] Does exit code "01" has some special meaning? BTW: I have test the GCC 4.9 snapshot i686-4.9.0-snapshot-20131119-rev205009-posix-dwarf-rt_v4.7z from mingw-w64 site, it has the same bug.