whisperity added a comment.
While I understand extending the analyzer to cover more is a good approach,
there is `-Wconversion` which seemingly covers this -- or at least the trivial
case(?):
#include <cstdio>
#include <vector>
void foo(unsigned x)
{
printf("%u\n", x);
}
int main()
{
int i = -1;
foo(i);
std::vector<int> x;
x[i] = 5;
}
$ clang++ -Wconversion -o/dev/null check.cpp
check.cpp:12:7: warning: implicit conversion changes signedness: 'int' to
'unsigned int' [-Wsign-conversion]
foo(i);
~~~ ^
check.cpp:15:5: warning: implicit conversion changes signedness: 'int' to
'std::vector::size_type' (aka 'unsigned long') [-Wsign-conversion]
x[i] = 5;
~ ^
Repository:
rC Clang
https://reviews.llvm.org/D46081
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits