[cfe-dev] clang -M compatibility with gcc

Marc Espie via cfe-dev cfe-dev at lists.llvm.org
Mon Jun 5 03:09:50 PDT 2017


All the gcc docs, up to 7.1, say about -M:
> Passing -M to the driver implies -E, and suppresses warnings with an implicit -w.


However, this is not the case with clang.

Observe
$ cat a.c 
#warning this is a warning
$ cc -M a.c
a.o: a.c
$ clang -M a.c
a.c:1:2: warning: this is a warning [-W#warnings]
#warning this is a warning
 ^
a.o: a.c
1 warning generated.
$ clang -M -w a.c
a.o: a.c
$ cat a.c 
#warning this is a warning
$ cc -M a.c
a.o: a.c
$ clang -M a.c
a.c:1:2: warning: this is a warning [-W#warnings]
#warning this is a warning
 ^
a.o: a.c
1 warning generated.
$ clang -M -w a.c
a.o: a.c
$

Is this intentional ?   From what I've gathered, one of clang's goals
is compatibility with gcc.

Otherwise, I'm going to have to stuff explicit -w in depend tools... which
should be more or less "safe" (are there compilers which support -M and not -w)



More information about the cfe-dev mailing list