I have GCC 8.1.0 / binutils 2.30 on GNU/Linux 64bit (built locally). My codebase is almost all C++.
I'm implementing precompiled headers and it was going well. However, sometimes a PCH file is generated that causes the compiler to ICE when trying to use it during a source file compilation: <command-line>: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. If I rename the .gch file and compile the source it works; if I put back the .gch file and compile the source it will ICE again. So clearly there's something corrupt about the PCH file itself. Also this does not happen every time, even using the identical code. Sometimes the PCH file is fine and the compile is fine. It has never happened on my local system but it happens quite often on some of our build servers (typically these are a bit older/slower with slower disks). And, it doesn't happen to all PCH files in the same build (I create different PCH files for different libraries), even ones that include the same files! Since it's not reproducible and the code is proprietary I haven't tried to produce a publishable case so far. Here's the thing: I added the "-MD -MF foo.d" options to the PCH file compile (I wanted to get a manifest of which files were included in the PCH file). Without those options I cannot reproduce this at all (in a number of tries). With those options it happens most of the time on some systems (but again, never on my local system). Unfortunately my GCC is heavily optimized and stripped so backtraces are useless. I will generate a debuggable GCC and see if I can get more info on the ICE. In the meantime, does this remind anyone of an existing bug, hopefully one that was fixed in 8.2 or 8.3?