Bug Types

100: undefined value. 110: pointer problems. 200: arithmetic problems. 300: out of bound problems. 400: memory management problems.

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

Checkers

Checker nameBug types checkedCommand line optionStatus
UndefOperand100defaultMature
UndefBranch101defaultMature
UndefArrayIndex107defaultMature
Location102, 110defaultMature
Assign113defaultMature
CalleeArguments105, 106, 111, 112, 500defaultMature
DivZero201, 202defaultMature
ReturnUndef104defaultMature
Shift200defaultMature
StackAddrEscape116, 117defaultMature
BadCondition230defaultMature
CastSize114-check-castsizeBeta
PointerIntCast210-check-ptrintcastBeta
TruncCast211-check-trunccastBeta
SignCast212-check-signcastBeta
IntegerOverflow220-check-integeroverflowBasic
ArrayBound300-check-oobBasic
BufferOverflow301-check-oobBasic
Malloc400, 401, 402, 403, 404To Be DeterminedNot complete