C checkers | Guideline |
---|
| ARR01-C. Do not apply the sizeof operator to a pointer when taking the size of an array |
| void ARR33-C. Guarantee that copies are made into storage of sufficient size | | ARR38-C. Guarantee that library functions do not form invalid pointers |
| DCL01-C. Do not reuse variable names in subscopes |
| DCL15-C. Declare file-scope objects or functions that do not need external linkage as static |
| DCL30-C. Declare objects with appropriate storage durations |
| DCL36-C. Do not declare an identifier with conflicting linkage classifications | | VOID EXP01-C. Do not take the size of a pointer to determine the size of the pointed-to type |
| EXP12-C. Do not ignore values returned by functions |
| EXP30-C. Do not depend on the order of evaluation for side effects |
| EXP33-C. Do not read uninitialized memory |
| EXP34-C. Do not dereference null pointers |
| EXP35-C. Do not modify objects with temporary lifetime |
| FIO30-C. Exclude user input from format strings |
| FIO34-C. Distinguish between characters read from a file and EOF or WEOF |
| FIO34-C. Distinguish between characters read from a file and EOF or WEOF | | FLP06-C. Convert integers to floating point for floating-point operations |
| INT01-C. Use rsize_t or size_t for all integer values representing the size of an object |
| INT07-C. Use only explicitly signed or unsigned char type for numeric values |
| INT13-C. Use bitwise operators only on unsigned operands |
| MEM30-C. Do not access freed memory |
| MEM31-C. Free dynamically allocated memory when no longer needed |
| MEM35-C. Allocate sufficient memory for an object |
| MSC07-C. Detect and remove dead code |
| MSC12-C. Detect and remove code that has no effect |
| SIG30-C. Call only asynchronous-safe functions within signal handlers |
| VOID SIG32-C. Do not call longjmp() from inside a signal handler | | STR11-C. Do not specify the bound of a character array initialized with a string literal |
| STR30-C. Do not attempt to modify string literals |
| STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator | | void STR33-C. Size wide character strings correctly |