clang で暗黙の符号変換を警告するには、-Wsign-conversion
オプションを指定します。
int main()
{
unsigned int x = -1;
return 0;
}
$ # M1 Mac (Ventura) + Apple clang 14.0.0
$ clang sample.cpp -Wsign-conversion
sample.cpp:3:22: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
unsigned int x = -1;
~ ^~
1 warning generated.
警告を抑制する
逆に、警告を抑制したい場合は -Wno-sign-conversion
オプションを指定します。 このオプションを指定することで、既に指定されたオプションを打ち消すことができます。
$ # M1 Mac (Ventura) + Apple clang 14.0.0
$ clang sample.cpp -Wsign-conversion -Wno-sign-conversion
$
参考資料
- Clang documentation — DIAGNOSTIC FLAGS IN CLANG
https://clang.llvm.org/docs/DiagnosticsReference.html#wsign-conversion