Patch by takeshi-yoshimura!
Differential Revision: http://reviews.llvm.org/D10145
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240643
91177308-0d34-0410-b5e6-
96231b3b80d8
return &getValue( V1 * V2 );
case BO_Div:
+ if (V2 == 0) // Avoid division by zero
+ return nullptr;
return &getValue( V1 / V2 );
case BO_Rem:
+ if (V2 == 0) // Avoid division by zero
+ return nullptr;
return &getValue( V1 % V2 );
case BO_Add:
--- /dev/null
+// RUN: %clang_cc1 -analyze -analyzer-checker=unix.Malloc %s
+// Do not crash due to division by zero
+
+int f(unsigned int a) {
+ if (a <= 0) return 1 / a;
+ return a;
+}