https://bugzilla.novell.com/show_bug.cgi?id=209558 Summary: gcc degrades missing #include to a warning, or no message at all when using -MMD Product: SUSE Linux 10.1 Version: Final Platform: Other OS/Version: Other Status: NEW Severity: Major Priority: P5 - None Component: Development AssignedTo: pth@novell.com ReportedBy: plasmahh@gmx.net QAContact: qa@suse.de Hi, according to gccs documentation and manpage, the options -MD and -MMD are good for producing dependency information as a side-effect of the compilation process. unfortunately -MMD seems to change the way gcc handles files not found by some #include. As an example: echo -e "#include <foobarisnothere.h>\nint main(){}\n" | gcc -x c++ -o out - errors out as expected: foobarisnothere.h was not found. But echo -e "#include <foobarisnothere.h>\nint main(){}\n" | gcc -MMD -x c++ -o out - only gives a warning that the file is not found. Both error out if "" is used instead of <> for including files. Worse, if the file that #include<>s something is under /usr/include or /usr/local/include, <b>no message at all</b> is given. I suspect that this is a side-effect of how -MMD tries to exclude system directories, but it somehow goes terribly wrong, leading to very confusal situations (it took me nearly 2 days to figure all this out, all I got was a message about "error: expected ‘;’ before ‘*’ token" where I always thought that it should recognize the type before the *, while it didn't since it could not find the include file, but didnt tell me) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.