I really don't know if this is a bug or not but it seems to be. The steps to reproduce: mkdir sys cat >sys/t.h <<FOO #include <bogus.h> FOO cat > t.c <<FOO #include <t.h> FOO gcc -isystem sys t.c -MMD
And notice that this actually compiles successfully even though bougs.h does not exist. And removing the -MMD option, it actually fails. -- Summary: -MMD vs not found system header (included from a system header) Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28435