diff options
Diffstat (limited to 'clang/lib/Checker/CastSizeChecker.cpp')
-rw-r--r-- | clang/lib/Checker/CastSizeChecker.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Checker/CastSizeChecker.cpp b/clang/lib/Checker/CastSizeChecker.cpp index 754d775a65d..59ea9e0e84f 100644 --- a/clang/lib/Checker/CastSizeChecker.cpp +++ b/clang/lib/Checker/CastSizeChecker.cpp @@ -63,6 +63,11 @@ void CastSizeChecker::PreVisitCastExpr(CheckerContext &C, const CastExpr *CE) { CharUnits RegionSize = CharUnits::fromQuantity(CI->getValue().getSExtValue()); CharUnits TypeSize = C.getASTContext().getTypeSizeInChars(ToPointeeTy); + + // void, and a few other un-sizeable types + if (TypeSize.isZero()) + return; + if (RegionSize % TypeSize != 0) { if (ExplodedNode *N = C.GenerateSink()) { if (!BT) |