| 
    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 | 
  
   | 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 | 
  
   | 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 | 
  
   | 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 | 
  
   | 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 | 
  
   | 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 | 
  
   | 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 | 
  
   | 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_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_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 | 
  
   | 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_18 | MSC25-C. Do not use insecure or weak cryptographic algorithms | 
  
   | 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 |