100: undefined value.
110: pointer problems.
200: arithmetic problems.
300: out of bound problems.
400: memory management problems.
| ID | Bug Types |
| 100 | An operand of a binary operator has undefined value. |
| 101 | A branch condition has undefined value. |
| 103 | A pointer is undefined |
| 104 | Return an undefined value. |
| 105 | Call an undefined function pointer. |
| 106 | An argument has undefined value. |
| 107 | An array index has undefined value. |
| 110 | Dereference A NULL pointer. |
| 111 | Call a NULL function pointer. |
| 112 | Pass a NULL pointer to a parameter that has non-null attribute. |
| 113 | Store to read-only memory. |
| 114 | Cast a memory block whose size is not a multiple of the destination type size. |
| 115 | The destination type size is larger than the original memory block size. |
| 116 | Return stack address. |
| 117 | A stack address was saved into a global variable, which will be invalid after the function call exits. |
| 200 | The amount of shift is negative or greater than the width of the promoted left operand. |
| 201 | Division by zero. |
| 202 | INT_MIN / or % (-1) has undefined behavior in C99. |
| 210 | Cast a pointer to int may lose information on 64-bit platforms. |
| 211 | Cast an integer to a type with fewer bits may lose data. |
| 212 | The types have the same width. But the original value is out of the range that can be represented by the new type. |
| 220 | Signed integer overflow occured during arithmetic operations. |
| 230 | Bitwise-or with a non-zero constant is always true. |
| 300 | Access out of bound memory with a pointer or array index. |
| 301 | The buffer is overrun by some API. |
| 400 | Memory leak. |
| 401 | Free an object that has been freed. |
| 402 | Free an non-heap memory object. |
| 403 | Use a memory object after it is freed. |
| 404 | The size passed to malloc() or realloc() is not greater than 0. |
| 500 | C++ this pointer is NULL. |