[Diagnostics] Refactor code for -Wsizeof-pointer-div, catch more cases; also add...
authorDavid Bolvansky <david.bolvansky@gmail.com>
Fri, 6 Sep 2019 16:12:48 +0000 (16:12 +0000)
committerDavid Bolvansky <david.bolvansky@gmail.com>
Fri, 6 Sep 2019 16:12:48 +0000 (16:12 +0000)
commitfd07568074689654e78ef38e700f9a019ffa42d3
treedce2d9421648702da07a0abc5d2b771d8a4509f2
parent4f0e429acca3b224b7b58fb89899c2de08a2e4c6
[Diagnostics] Refactor code for -Wsizeof-pointer-div, catch more cases; also add -Wsizeof-array-div

Previously, -Wsizeof-pointer-div failed to catch:
const int *r;
sizeof(r) / sizeof(int);

Now fixed.
Also introduced -Wsizeof-array-div which catches bugs like:
sizeof(r) / sizeof(short);

(Array element type does not match type of sizeof operand).

llvm-svn: 371222
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaChecking.cpp
clang/lib/Sema/SemaExpr.cpp
clang/test/Sema/div-sizeof-ptr.cpp