| Checker | Guideline |
| arithOperationsOnVoidPointer | API04-C. Provide a consistent and usable error-checking mechanism |
| arrayIndexOutOfBoundsCond | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| assignmentInAssert | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| autoVariables | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| autovarInvalidDeallocation | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C01 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C02 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C03 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C04 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C05 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C06 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C07 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C08 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C08 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C09 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C10 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C11 | CON02-C. Do not use volatile as a synchronization primitive |
| C12 | CON05-C. Do not perform operations that can block while holding a lock |
| C13 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C14 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C15 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C16 | DCL13-C. Declare function parameters that are pointers to values not changed by the function as const |
| C17 | FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call |
| C18 | DCL30-C. Declare objects with appropriate storage durations |
| C19 | DCL31-C. Declare identifiers before using them |
| C20 | DCL39-C. Avoid information leakage when passing a structure across a trust boundary |
| C21 | DCL39-C. Avoid information leakage when passing a structure across a trust boundary |
| C22 | DCL39-C. Avoid information leakage when passing a structure across a trust boundary |
| C23 | DCL39-C. Avoid information leakage when passing a structure across a trust boundary |
| C24 | ARR36-C. Do not subtract or compare two pointers that do not refer to the same array |
| C25 | DCL39-C. Avoid information leakage when passing a structure across a trust boundary |
| C26 | DCL40-C. Do not create incompatible declarations of the same function or object |
| C27 | ENV30-C. Do not modify the object referenced by the return value of certain functions |
| C28 | ENV30-C. Do not modify the object referenced by the return value of certain functions |
| C29 | ENV30-C. Do not modify the object referenced by the return value of certain functions |
| C31 | ERR04-C. Choose an appropriate termination strategy |
| C32 | ERR05-C. Application-independent code should provide error detection without dictating error handling |
| C33 | ERR05-C. Application-independent code should provide error detection without dictating error handling |
| C34 | ERR32-C. Do not rely on indeterminate values of errno |
| C37 | EXP00-C. Use parentheses for precedence of operation |
| C37 | EXP08-C. Ensure pointer arithmetic is used correctly |
| C38 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C39 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C40 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C42 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C44 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C45 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C46 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C46 | EXP09-C. Use sizeof to determine the size of a type or variable |
| C47 | EXP12-C. Do not ignore values returned by functions |
| C48 | EXP12-C. Do not ignore values returned by functions |
| C49 | ARR30-C. Do not form or use out-of-bounds pointers or array subscripts |
| C50 | EXP30-C. Do not depend on the order of evaluation for side effects |
| C50 | EXP14-C. Beware of integer promotion when performing bitwise operations on integer types smaller than int |
| C51 | EXP19-C. Use braces for the body of an if, for, or while statement |
| C52 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C54 | EXP33-C. Do not read uninitialized memory |
| C55 | EXP33-C. Do not read uninitialized memory |
| C56 | EXP33-C. Do not read uninitialized memory |
| C57 | EXP33-C. Do not read uninitialized memory |
| C58 | EXP33-C. Do not read uninitialized memory |
| C59 | EXP33-C. Do not read uninitialized memory |
| C60 | EXP33-C. Do not read uninitialized memory |
| C61 | EXP33-C. Do not read uninitialized memory |
| C62 | EXP33-C. Do not read uninitialized memory |
| C63 | EXP33-C. Do not read uninitialized memory |
| C64 | EXP34-C. Do not dereference null pointers |
| C65 | EXP34-C. Do not dereference null pointers |
| C66 | EXP34-C. Do not dereference null pointers |
| C67 | EXP36-C. Do not cast pointers into more strictly aligned pointer types |
| C68 | EXP36-C. Do not cast pointers into more strictly aligned pointer types |
| C69 | EXP36-C. Do not cast pointers into more strictly aligned pointer types |
| C70 | EXP36-C. Do not cast pointers into more strictly aligned pointer types |
| C71 | EXP37-C. Call functions with the correct number and type of arguments |
| C73 | EXP40-C. Do not modify constant objects |
| C73 | EXP46-C. Do not use a bitwise operator with a Boolean-like operand |
| C76 | FIO21-C. Do not create temporary files in shared directories |
| C77 | FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call |
| C78 | FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call |
| C79 | FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call |
| C80 | FIO39-C. Do not alternately input and output from a stream without an intervening flush or positioning call |
| C80 | FIO42-C. Close files when they are no longer needed |
| C81 | FIO47-C. Use valid format strings |
| C82 | FIO47-C. Use valid format strings |
| C83 | FIO47-C. Use valid format strings |
| C83 | FIO47-C. Use valid format strings |
| C84 | FIO47-C. Use valid format strings |
| C85 | FIO47-C. Use valid format strings |
| C86 | FIO47-C. Use valid format strings |
| C86 | FIO47-C. Use valid format strings |
| C87 | FLP03-C. Detect and handle floating-point errors |
| C88 | FLP34-C. Ensure that floating-point conversions are within range of the new type |
| C101 | ARR32-C. Ensure size arguments for variable length arrays are in a valid range |
| C107 | ARR36-C. Do not subtract or compare two pointers that do not refer to the same array |
| C109 | ARR38-C. Guarantee that library functions do not form invalid pointers |
| C122 | CON40-C. Do not refer to an atomic variable twice in an expression |
| C123 | CON40-C. Do not refer to an atomic variable twice in an expression |
| C126 | DCL01-C. Do not reuse variable names in subscopes |
| C127 | DCL01-C. Do not reuse variable names in subscopes |
| C129 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C130 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C132 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C133 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C135 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C154 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C155 | DCL03-C. Use a static assertion to test the value of a constant expression |
| C176 | DCL30-C. Declare objects with appropriate storage durations |
| C177 | DCL30-C. Declare objects with appropriate storage durations |
| C178 | DCL30-C. Declare objects with appropriate storage durations |
| C179 | DCL30-C. Declare objects with appropriate storage durations |
| C999 | INT01-C. Use size_t or rsize_t for all integer values representing the size of an object |
| CbOB | INT02-C. Understand integer conversion rules |
| CconstVariable | INT02-C. Understand integer conversion rules |
| CdLT | INT02-C. Understand integer conversion rules |
| CdoubleFree | INT02-C. Understand integer conversion rules |
| CduplicateCondition | INT02-C. Understand integer conversion rules |
| CE6 | INT02-C. Understand integer conversion rules |
| CE6_S | INT02-C. Understand integer conversion rules |
| CE7 | INT02-C. Understand integer conversion rules |
| CE8 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| CE11 | INT02-C. Understand integer conversion rules |
| CE12 | INT02-C. Understand integer conversion rules |
| CE13 | INT02-C. Understand integer conversion rules |
| CE256 | INT02-C. Understand integer conversion rules |
| CfCO | INT02-C. Understand integer conversion rules |
| CinvalidLifetime | INT02-C. Understand integer conversion rules |
| CinvalidScanfArgType_int | INT02-C. Understand integer conversion rules |
| CiRV | INT02-C. Understand integer conversion rules |
| CiSFW | INT02-C. Understand integer conversion rules |
| CknownConditionTrueFalse | INT02-C. Understand integer conversion rules |
| clarifyCalculation | INT08-C. Verify that all integer values are in range |
| ClRVNU | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CmAD | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CmemleakOnRealloc | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CmissingReturn | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CMR | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CmVOOR | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CnAS | INT31-C. Ensure that integer conversions do not result in lost or misinterpreted data |
| CNI | INT32-C. Ensure that operations on signed integers do not result in overflow |
| CPP_02 | INT33-C. Ensure that division and remainder operations do not result in divide-by-zero errors |
| CPP_03 | INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand |
| CPP_05 | INT36-C. Converting a pointer to integer or integer to pointer |
| CPP_07 | MEM03-C. Clear sensitive information stored in reusable resources |
| CPP_08 | MEM04-C. Beware of zero-length allocations |
| CPP_010 | MEM05-C. Avoid large stack allocations |
| CPP_11 | MEM10-C. Define and use a pointer validation function |
| CPP_12 | MEM30-C. Do not access freed memory |
| CPP_17 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_18 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_22 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_23 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_24 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_25 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_26 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_27 | MEM31-C. Free dynamically allocated memory when no longer needed |
| CPP_028 | MEM33-C. Allocate and copy structures containing a flexible array member dynamically |
| CPP_31 | MEM34-C. Only free memory allocated dynamically |
| CPP_32 | MEM34-C. Only free memory allocated dynamically |
| CPP_33 | MEM34-C. Only free memory allocated dynamically |
| CPP_34 | MEM34-C. Only free memory allocated dynamically |
| CPP_35 | MEM34-C. Only free memory allocated dynamically |
| CPP_36 | MEM34-C. Only free memory allocated dynamically |
| CPP_039 | MEM35-C. Allocate sufficient memory for an object |
| CPP_44 | MSC01-C. Strive for logical completeness |
| CPP_48 | MEM12-C. Consider using a goto chain when leaving a function on error when using and releasing resources |
| CPP_57 | MSC07-C. Detect and remove dead code |
| CPP_58 | MSC07-C. Detect and remove dead code |
| CPP_59 | MSC07-C. Detect and remove dead code |
| CPP_60 | MSC07-C. Detect and remove dead code |
| CPP_61 | MSC07-C. Detect and remove dead code |
| CPP_62 | MSC07-C. Detect and remove dead code |
| CPP_uninitvar | MSC07-C. Detect and remove dead code |
| CPPCrypt | MSC07-C. Detect and remove dead code |
| CPPDSLHardcoded | MSC07-C. Detect and remove dead code |
| CPPDSLRAND | MSC07-C. Detect and remove dead code |
| CPPDSLWES | MSC07-C. Detect and remove dead code |
| CpPED | MSC07-C. Detect and remove dead code |
| CPPEnterCriticalSection | MSC07-C. Detect and remove dead code |
| CPPIsBadWritePtr | MSC07-C. Detect and remove dead code |
| CPPLoadLibrary | MSC07-C. Detect and remove dead code |
| CPPLoop | MSC07-C. Detect and remove dead code |
| CPPOftenMisured | MSC09-C. Character encoding: Use subset of ASCII for safety |
| CPPPBE | MSC11-C. Incorporate diagnostic tests using assertions |
| CPtr | MSC12-C. Detect and remove code that has no effect or is never executed |
| CsFPC | MSC18-C. Be careful while handling sensitive data, such as passwords, in program code |
| ctuNullPointer | MSC20-C. Do not use a switch statement to transfer control into a complex block |
| ctuOneDefinitionRuleViolation | MSC21-C. Use robust loop termination conditions |
| CuEV | MSC24-C. Do not use deprecated or obsolescent functions |
| CvariableScope | MSC24-C. Do not use deprecated or obsolescent functions |
| CWE395TEST_2_CPP | MSC24-C. Do not use deprecated or obsolescent functions |
| CWE561P25 | MSC24-C. Do not use deprecated or obsolescent functions |
| CwPSPPE | MSC24-C. Do not use deprecated or obsolescent functions |
| CzDC | MSC24-C. Do not use deprecated or obsolescent functions |
| deallocret | MSC24-C. Do not use deprecated or obsolescent functions |
| integerOverflowCond | MSC24-C. Do not use deprecated or obsolescent functions |
| invalidContainer | MSC24-C. Do not use deprecated or obsolescent functions |
| invalidFunctionArg | MSC24-C. Do not use deprecated or obsolescent functions |
| leakUnsafeArgAlloc | MSC24-C. Do not use deprecated or obsolescent functions |
| memleak | MSC24-C. Do not use deprecated or obsolescent functions |
| memleakOnRealloc | MSC24-C. Do not use deprecated or obsolescent functions |
| noCopyConstructor | MSC24-C. Do not use deprecated or obsolescent functions |
| noOperatorEq | MSC24-C. Do not use deprecated or obsolescent functions |
| nullPointerRedundantCheck | MSC24-C. Do not use deprecated or obsolescent functions |
| oppositeExpression | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| redundantPointerOp | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_01 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_02 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_03 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_04 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_05 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_06 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_07 | MSC30-C. Do not use the rand() function for generating pseudorandom numbers |
| RTOS_09 | MSC37-C. Ensure that control never reaches the end of a non-void function |
| RTOS_13 | MSC39-C. Do not call va_arg() on a va_list that has an indeterminate value |
| RTOS_14 | MSC41-C. Never hard code sensitive information |
| RTOS_18 | MSC25-C. Do not use insecure or weak cryptographic algorithms |
| RTOS_19 | POS01-C. Check for the existence of links when dealing with files |
| RTOS_20 | POS52-C. Do not perform operations that can block while holding a POSIX lock |
| RTOS_22 | PRE04-C. Do not reuse a standard header file name |
| RTOS_26 | PRE13-C. Use the Standard predefined macros to test for versions and features. |
| RTOS_27 | PRE30-C. Do not create a universal character name through concatenation |
| RTOS_28 | PRE31-C. Avoid side effects in arguments to unsafe macros |
| RTOS_31 | STR05-C. Use pointers to const when referring to string literals |
| RTOS_33 | STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator |
| RTOS_34 | STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator |
| shadowVariable | STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator |
| shiftTooManyBits | STR32-C. Do not pass a non-null-terminated character sequence to a library function that expects a string |
| UNSAFE_01 | STR37-C. Arguments to character-handling functions must be representable as an unsigned char |
| UNSAFE_02 | STR38-C. Do not confuse narrow and wide character strings and functions |
| UNSAFE_03 | STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator |
| UNSAFE_04 | STR31-C. Guarantee that storage for strings has sufficient space for character data and the null terminator |
| UNSAFE_05 | WIN02-C. Restrict privileges when spawning child processes |