<?xml version="1.0" encoding="utf-8"?>
<PVS-Studio_Rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="7.40">
  <RuleSet lang="cpp">
    <Rule group="fails">
      <Code>V001</Code>
      <Name>A code fragment from 'file' cannot be analyzed.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V002</Code>
      <Name>Some diagnostic messages may contain incorrect line number.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V003</Code>
      <Name>Unrecognized error found...</Name>
    </Rule>
    <Rule group="64">
      <Code>V004</Code>
      <Name>Diagnostics from the 64-bit rule set are not entirely accurate without the appropriate 64-bit compiler. Consider utilizing 64-bit compiler if possible.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V005</Code>
      <Name>Cannot determine active configuration for project. Please check projects and solution configurations.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V006</Code>
      <Name>File cannot be processed. Analysis aborted by timeout.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V007</Code>
      <Name>Deprecated CLR switch was detected. Incorrect diagnostics are possible.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V008</Code>
      <Name>Unable to start the analysis on this file.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V009</Code>
      <Name>To use free version of PVS-Studio, source code files are required to start with a special comment.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V010</Code>
      <Name>Analysis for the project type or platform toolsets is not supported in this tool. Use direct analyzer integration or compiler monitoring instead.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V011</Code>
      <Name>Presence of #line directives may cause some diagnostic messages to have incorrect file name and line number.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V012</Code>
      <Name>Some warnings could have been disabled.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V013</Code>
      <Name>Intermodular analysis may be incomplete, as it is not run on all source files.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V014</Code>
      <Name>The version of your suppress file is outdated. Appending new suppressed messages to it is not possible. Consider re-generating your suppress file to continue updating it.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V015</Code>
      <Name>All analyzer messages were filtered out or marked as false positive. Use filter buttons or 'Don't Check Files' settings to enable message display.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V016</Code>
      <Name>User annotation was not applied to a virtual function. To force the annotation, use the 'enable_on_virtual' flag.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V017</Code>
      <Name>The analyzer terminated abnormally due to lack of memory.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V018</Code>
      <Name>False Alarm marks without hash codes were ignored because the 'V_HASH_ONLY' option is enabled.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V019</Code>
      <Name>Error occurred while working with the user annotation mechanism.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V020</Code>
      <Name>Error occurred while working with rules configuration files.</Name>
    </Rule>
    <Rule group="64">
      <Code>V101</Code>
      <Name>Implicit assignment type conversion to memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V102</Code>
      <Name>Usage of non memsize type for pointer arithmetic.</Name>
    </Rule>
    <Rule group="64">
      <Code>V103</Code>
      <Name>Implicit type conversion from memsize type to 32-bit type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V104</Code>
      <Name>Implicit type conversion to memsize type in an arithmetic expression.</Name>
    </Rule>
    <Rule group="64">
      <Code>V105</Code>
      <Name>N operand of '?:' operation: implicit type conversion to memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V106</Code>
      <Name>Implicit type conversion N argument of function 'foo' to memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V107</Code>
      <Name>Implicit type conversion N argument of function 'foo' to 32-bit type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V108</Code>
      <Name>Incorrect index type: 'foo[not a memsize-type]'. Use memsize type instead.</Name>
    </Rule>
    <Rule group="64">
      <Code>V109</Code>
      <Name>Implicit type conversion of return value to memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V110</Code>
      <Name>Implicit type conversion of return value from memsize type to 32-bit type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V111</Code>
      <Name>Call of function 'foo' with variable number of arguments. N argument has memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V112</Code>
      <Name>Dangerous magic number N used.</Name>
    </Rule>
    <Rule group="64">
      <Code>V113</Code>
      <Name>Implicit type conversion from memsize to double type or vice versa.</Name>
    </Rule>
    <Rule group="64">
      <Code>V114</Code>
      <Name>Dangerous explicit type pointer conversion.</Name>
    </Rule>
    <Rule group="64">
      <Code>V115</Code>
      <Name>Memsize type is used for throw.</Name>
    </Rule>
    <Rule group="64">
      <Code>V116</Code>
      <Name>Memsize type is used for catch.</Name>
    </Rule>
    <Rule group="64">
      <Code>V117</Code>
      <Name>Memsize type is used in the union.</Name>
    </Rule>
    <Rule group="64">
      <Code>V118</Code>
      <Name>malloc() function accepts a dangerous expression in the capacity of an argument.</Name>
    </Rule>
    <Rule group="64">
      <Code>V119</Code>
      <Name>More than one sizeof() operator is used in one expression.</Name>
    </Rule>
    <Rule group="64">
      <Code>V120</Code>
      <Name>Member operator[] of object 'foo' is declared with 32-bit type argument, but is called with memsize type argument.</Name>
    </Rule>
    <Rule group="64">
      <Code>V121</Code>
      <Name>Implicit conversion of the type of 'new' operator's argument to size_t type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V122</Code>
      <Name>Memsize type is used in the struct/class.</Name>
    </Rule>
    <Rule group="64">
      <Code>V123</Code>
      <Name>Allocation of memory by the pattern "(X*)malloc(sizeof(Y))" where the sizes of X and Y types are not equal.</Name>
    </Rule>
    <Rule group="64">
      <Code>V124</Code>
      <Name>Function 'Foo' writes/reads 'N' bytes. The alignment rules and type sizes have been changed. Consider reviewing this value.</Name>
    </Rule>
    <Rule group="64">
      <Code>V125</Code>
      <Name>It is not advised to declare type 'T' as 32-bit type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V126</Code>
      <Name>Be advised that the size of the type 'long' varies between LLP64/LP64 data models.</Name>
    </Rule>
    <Rule group="64">
      <Code>V127</Code>
      <Name>An overflow of the 32-bit variable is possible inside a long cycle which utilizes a memsize-type loop counter.</Name>
    </Rule>
    <Rule group="64">
      <Code>V128</Code>
      <Name>A variable of the memsize type is read from a stream. Consider verifying the compatibility of 32 and 64 bit versions of the application in the context of a stored data.</Name>
    </Rule>
    <Rule group="64">
      <Code>V201</Code>
      <Name>Explicit conversion from 32-bit integer type to memsize type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V202</Code>
      <Name>Explicit conversion from memsize type to 32-bit integer type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V203</Code>
      <Name>Explicit type conversion from memsize to double type or vice versa.</Name>
    </Rule>
    <Rule group="64">
      <Code>V204</Code>
      <Name>Explicit conversion from 32-bit integer type to pointer type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V205</Code>
      <Name>Explicit conversion of pointer type to 32-bit integer type.</Name>
    </Rule>
    <Rule group="64">
      <Code>V206</Code>
      <Name>Explicit conversion from 'void *' to 'int *'.</Name>
    </Rule>
    <Rule group="64">
      <Code>V207</Code>
      <Name>A 32-bit variable is utilized as a reference to a pointer. A write outside the bounds of this variable may occur.</Name>
    </Rule>
    <Rule group="64">
      <Code>V220</Code>
      <Name>Suspicious sequence of types castings: memsize -&gt; 32-bit integer -&gt; memsize.</Name>
    </Rule>
    <Rule group="64">
      <Code>V221</Code>
      <Name>Suspicious sequence of types castings: pointer -&gt; memsize -&gt; 32-bit integer.</Name>
    </Rule>
    <Rule group="64">
      <Code>V301</Code>
      <Name>Unexpected function overloading behavior. See N argument of function 'foo' in derived class 'derived' and base class 'base'.</Name>
    </Rule>
    <Rule group="64">
      <Code>V302</Code>
      <Name>Member operator[] of 'foo' class has a 32-bit type argument. Use memsize-type here.</Name>
    </Rule>
    <Rule group="64">
      <Code>V303</Code>
      <Name>The function is deprecated in the Win64 system. It is safer to use the 'foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V501</Code>
      <Name>Identical sub-expressions to the left and to the right of 'foo' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="EXP00-C" defaultLevel="LEVEL-1">
      <Code>V502</Code>
      <Name>The '?:' operator may not work as expected. The '?:' operator has a lower priority than the 'foo' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" cert="EXP08-C" defaultLevel="LEVEL-1">
      <Code>V503</Code>
      <Name>Nonsensical comparison: pointer &lt; 0.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-841" defaultLevel="LEVEL-1">
      <Code>V504</Code>
      <Name>Semicolon ';' is probably missing after the 'return' keyword.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-770" cert="MEM05-C" defaultLevel="LEVEL-2">
      <Code>V505</Code>
      <Name>The 'alloca' function is used inside the loop. This can quickly overflow stack.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-562" cert="DCL30-C" defaultLevel="LEVEL-2">
      <Code>V506</Code>
      <Name>Pointer to local variable 'X' is stored outside the scope of this variable. Such a pointer will become invalid.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-562" cert="DCL30-C" defaultLevel="LEVEL-2">
      <Code>V507</Code>
      <Name>Pointer to local array 'X' is stored outside the scope of this array. Such a pointer will become invalid.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V508</Code>
      <Name>The 'new type(n)' pattern was detected. Probably meant: 'new type[n]'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-248,CWE-703" cert="DCL57-CPP" defaultLevel="LEVEL-1">
      <Code>V509</Code>
      <Name>Exceptions raised inside noexcept functions must be wrapped in a try..catch block.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" cert="FIO47-C" defaultLevel="LEVEL-1">
      <Code>V510</Code>
      <Name>The 'Foo' function receives class-type variable as Nth actual argument. This is unexpected behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-467" cert="ARR01-C" defaultLevel="LEVEL-1">
      <Code>V511</Code>
      <Name>The sizeof() operator returns pointer size instead of array size.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-119,CWE-125,CWE-193,CWE-787,CWE-806,CWE-467,CWE-682" cert="ARR01-C,ARR30-C" defaultLevel="LEVEL-1">
      <Code>V512</Code>
      <Name>Call of the 'Foo' function will lead to buffer overflow.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-676" cert="MSC24-C" defaultLevel="LEVEL-3">
      <Code>V513</Code>
      <Name>Use _beginthreadex/_endthreadex functions instead of CreateThread/ExitThread functions.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-131" cert="ARR01-C" defaultLevel="LEVEL-1">
      <Code>V514</Code>
      <Name>Potential logical error. Size of a pointer is divided by another value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-763" cert="MEM51-CPP" defaultLevel="LEVEL-3">
      <Code>V515</Code>
      <Name>The 'delete' operator is applied to non-pointer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" cert="EXP16-C" defaultLevel="LEVEL-1">
      <Code>V516</Code>
      <Name>Non-null function pointer is compared to null. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V517</Code>
      <Name>Potential logical error. The 'if (A) {...} else if (A) {...}' pattern was detected.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-131" cert="STR31-C" defaultLevel="LEVEL-1">
      <Code>V518</Code>
      <Name>The 'malloc' function allocates suspicious amount of memory calculated by 'strlen(expr)'. Perhaps the correct expression is strlen(expr) + 1.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" cert="MSC13-C" defaultLevel="LEVEL-2">
      <Code>V519</Code>
      <Name>The 'x' variable is assigned values twice successively. Perhaps this is a mistake.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP08-C" defaultLevel="LEVEL-1">
      <Code>V520</Code>
      <Name>Comma operator ',' in array index expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP10-C,EXP50-CPP" defaultLevel="LEVEL-1">
      <Code>V521</Code>
      <Name>Expressions that use comma operator ',' are dangerous. Make sure the expression is correct.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476,CWE-690" cert="EXP34-C,MEM52-CPP" defaultLevel="LEVEL-1">
      <Code>V522</Code>
      <Name>Possible null pointer dereference.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V523</Code>
      <Name>The 'then' statement is equivalent to the 'else' statement.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V524</Code>
      <Name>It is suspicious that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V525</Code>
      <Name>Code contains collection of similar blocks. Check items X, Y, Z, ... in lines N1, N2, N3, ...</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" defaultLevel="LEVEL-3">
      <Code>V526</Code>
      <Name>The 'strcmp' function returns 0 if corresponding strings are equal. Consider inspecting the condition for mistakes.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-351" cert="INT36-C" defaultLevel="LEVEL-1">
      <Code>V527</Code>
      <Name>The 'zero' value is assigned to pointer. Probably meant: *ptr = zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" cert="INT36-C" defaultLevel="LEVEL-1">
      <Code>V528</Code>
      <Name>Pointer is compared with 'zero' value. Probably meant: *ptr != zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="EXP15-C" defaultLevel="LEVEL-1">
      <Code>V529</Code>
      <Name>Suspicious semicolon ';' after 'if/for/while' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-252" cert="EXP12-C" defaultLevel="LEVEL-1">
      <Code>V530</Code>
      <Name>Return value of 'Foo' function is required to be used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-131" cert="MEM35-C" defaultLevel="LEVEL-1">
      <Code>V531</Code>
      <Name>The sizeof() operator is multiplied by sizeof(). Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP30-C" defaultLevel="LEVEL-1">
      <Code>V532</Code>
      <Name>Consider inspecting the statement of '*pointer++' pattern. Probably meant: '(*pointer)++'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V533</Code>
      <Name>It is possible that a wrong variable is incremented inside the 'for' operator. Consider inspecting 'X'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V534</Code>
      <Name>It is possible that a wrong variable is compared inside the 'for' operator. Consider inspecting 'X'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V535</Code>
      <Name>The 'X' variable is used for this loop and outer loops.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="DCL18-C" defaultLevel="LEVEL-1">
      <Code>V536</Code>
      <Name>Constant value is represented by an octal form.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V537</Code>
      <Name>Potential incorrect use of item 'X'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V538</Code>
      <Name>The line contains control character 0x0B (vertical tabulation).</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-688" cert="CTR53-CPP" defaultLevel="LEVEL-1">
      <Code>V539</Code>
      <Name>Iterators are passed as arguments to 'Foo' function. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V540</Code>
      <Name>Member 'x' should point to string terminated by two 0 characters.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V541</Code>
      <Name>String is printed into itself. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="INT36-C" defaultLevel="LEVEL-1">
      <Code>V542</Code>
      <Name>Suspicious type cast: 'Type1' to ' Type2'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-1">
      <Code>V543</Code>
      <Name>It is suspicious that value 'X' is assigned to the variable 'Y' of HRESULT type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" defaultLevel="LEVEL-1">
      <Code>V544</Code>
      <Name>It is suspicious that the value 'X' of HRESULT type is compared with 'Y'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" defaultLevel="LEVEL-2">
      <Code>V545</Code>
      <Name>Conditional expression of 'if' statement is incorrect for the HRESULT type value 'Foo'. The SUCCEEDED or FAILED macro should be used instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" cert="EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V546</Code>
      <Name>The 'Foo(Foo)' class member is initialized with itself.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V547</Code>
      <Name>Expression is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="EXP36-C" defaultLevel="LEVEL-1">
      <Code>V548</Code>
      <Name>TYPE X[][] is not equivalent to TYPE **X. Consider inspecting type casting.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-688" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V549</Code>
      <Name>The 'first' argument of 'Foo' function is equal to the 'second' argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="FLP02-C" defaultLevel="LEVEL-3">
      <Code>V550</Code>
      <Name>Suspicious precise comparison. Consider using a comparison with defined precision: fabs(A - B) &lt; Epsilon or fabs(A - B) &gt; Epsilon.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" cert="MSC12-C" defaultLevel="LEVEL-1">
      <Code>V551</Code>
      <Name>Unreachable code under a 'case' label.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V552</Code>
      <Name>A bool type variable is incremented. Perhaps another variable should be incremented instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V553</Code>
      <Name>Length of function body or class declaration is more than 2000 lines. Consider refactoring the code.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-762" cert="MEM51-CPP" defaultLevel="LEVEL-1">
      <Code>V554</Code>
      <Name>Incorrect use of smart pointer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-191" cert="INT02-C" defaultLevel="LEVEL-2">
      <Code>V555</Code>
      <Name>Expression of the 'A - B &gt; 0' kind will work as 'A != B'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V556</Code>
      <Name>Values of different enum types are compared.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-787,CWE-125,CWE-119" cert="ARR30-C" defaultLevel="LEVEL-1">
      <Code>V557</Code>
      <Name>Possible array overrun.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-562" cert="DCL30-C" defaultLevel="LEVEL-1">
      <Code>V558</Code>
      <Name>Function returns pointer/reference to temporary local object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-481" cert="EXP45-C" defaultLevel="LEVEL-2">
      <Code>V559</Code>
      <Name>Suspicious assignment inside the conditional expression of 'if/while/for' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-2">
      <Code>V560</Code>
      <Name>Part of conditional expression is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" cert="DCL01-C" defaultLevel="LEVEL-1">
      <Code>V561</Code>
      <Name>Consider assigning value to 'foo' variable instead of declaring it anew.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V562</Code>
      <Name>Bool type value is compared with value of N. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="EXP19-C" defaultLevel="LEVEL-1">
      <Code>V563</Code>
      <Name>An 'else' branch may apply to the previous 'if' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP46-C" defaultLevel="LEVEL-1">
      <Code>V564</Code>
      <Name>The '&amp;' or '|' operator is applied to bool type value. Check for missing parentheses or use the '&amp;&amp;' or '||' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1069,CWE-390,CWE-544" cert="ERR56-CPP" defaultLevel="LEVEL-3">
      <Code>V565</Code>
      <Name>Empty exception handler. Silent suppression of exceptions can hide errors in source code during testing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-587" cert="INT36-C" defaultLevel="LEVEL-3">
      <Code>V566</Code>
      <Name>Integer constant is converted to pointer. Check for an error or bad coding style.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="EXP30-C" defaultLevel="LEVEL-1">
      <Code>V567</Code>
      <Name>Modification of variable is unsequenced relative to another operation on the same variable. This may lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-131" cert="EXP44-C,ARR01-C" defaultLevel="LEVEL-1">
      <Code>V568</Code>
      <Name>It is suspicious that the argument of sizeof() operator is the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V569</Code>
      <Name>Truncation of constant value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V570</Code>
      <Name>Variable is assigned to itself.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" defaultLevel="LEVEL-2">
      <Code>V571</Code>
      <Name>Recurring check. This condition was already verified in previous line.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V572</Code>
      <Name>Object created using 'new' operator is immediately cast to another type. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP33-C,EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V573</Code>
      <Name>Use of uninitialized variable 'Foo'. The variable was used to initialize itself.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-823" cert="EXP08-C" defaultLevel="LEVEL-3">
      <Code>V574</Code>
      <Name>Pointer is used both as an array and as a pointer to single object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628,CWE-1164" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V575</Code>
      <Name>Function receives suspicious argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686,CWE-685,CWE-687,CWE-628" cert="FIO47-C,DCL11-C" defaultLevel="LEVEL-1">
      <Code>V576</Code>
      <Name>Incorrect format. Consider checking the Nth actual argument of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-478" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V577</Code>
      <Name>Label is present inside switch(). Check for typos and consider using the 'default:' operator instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V578</Code>
      <Name>Suspicious bitwise operation was detected. Consider inspecting it.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-467" cert="ARR01-C" defaultLevel="LEVEL-1">
      <Code>V579</Code>
      <Name>The 'Foo' function receives the pointer and its size as arguments. This may be a potential error. Inspect the Nth argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-843" cert="EXP39-C" defaultLevel="LEVEL-2">
      <Code>V580</Code>
      <Name>Suspicious explicit type casting. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-3">
      <Code>V581</Code>
      <Name>Conditional expressions of 'if' statements located next to each other are identical.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-787,CWE-125,CWE-119" cert="ARR30-C" defaultLevel="LEVEL-2">
      <Code>V582</Code>
      <Name>Consider reviewing the source code that uses the container.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-1">
      <Code>V583</Code>
      <Name>The '?:' operator, regardless of its conditional expression, always returns the same value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V584</Code>
      <Name>Same value is present on both sides of the operator. The expression is incorrect or can be simplified.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-762" cert="MEM34-C" defaultLevel="LEVEL-1">
      <Code>V585</Code>
      <Name>Attempt to release memory that stores the 'Foo' local variable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-415,CWE-675" cert="MEM30-C,MEM50-CPP" defaultLevel="LEVEL-1">
      <Code>V586</Code>
      <Name>The 'Foo' function is called twice to deallocate the same resource.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V587</Code>
      <Name>Suspicious sequence of assignments: A = B; B = A;.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V588</Code>
      <Name>Expression of the 'A =+ B' kind is used. Possibly meant: 'A += B'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-3">
      <Code>V589</Code>
      <Name>Expression of the 'A =- B' kind is used. Possibly meant: 'A -= B'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V590</Code>
      <Name>Possible excessive expression or typo. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-393" cert="MSC52-CPP" defaultLevel="LEVEL-1">
      <Code>V591</Code>
      <Name>Non-void function must return value.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V592</Code>
      <Name>Expression is enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or typo is present.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="EXP00-C" defaultLevel="LEVEL-1">
      <Code>V593</Code>
      <Name>Expression 'A = B == C' is calculated as 'A = (B == C)'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-823" cert="ARR30-C" defaultLevel="LEVEL-1">
      <Code>V594</Code>
      <Name>Pointer to array is out of array bounds.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" cert="EXP34-C" defaultLevel="LEVEL-1">
      <Code>V595</Code>
      <Name>Pointer was used before its check for nullptr. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-390" cert="MSC13-C" defaultLevel="LEVEL-1">
      <Code>V596</Code>
      <Name>Object was created but is not used. Check for missing 'throw' keyword.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-14" cert="MSC06-C" defaultLevel="LEVEL-1">
      <Code>V597</Code>
      <Name>Compiler may delete 'memset' function call that is used to clear 'Foo' buffer. Use the RtlSecureZeroMemory() function to erase private data.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" cert="EXP62-CPP,OOP57-CPP" defaultLevel="LEVEL-1">
      <Code>V598</Code>
      <Name>Memory manipulation function is used to work with a class object containing a virtual table pointer. The result of such an operation may be unexpected.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1079" cert="OOP52-CPP" defaultLevel="LEVEL-1">
      <Code>V599</Code>
      <Name>The virtual destructor is not present, although the 'Foo' class contains virtual functions.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" cert="EXP08-C" defaultLevel="LEVEL-2">
      <Code>V600</Code>
      <Name>The 'Foo' pointer is always not equal to NULL. Consider inspecting the condition.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="INT36-C" defaultLevel="LEVEL-2">
      <Code>V601</Code>
      <Name>Suspicious implicit type casting.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V602</Code>
      <Name>The '&lt;' operator should probably be replaced with '&lt;&lt;'. Consider inspecting this expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" cert="MSC13-C" defaultLevel="LEVEL-1">
      <Code>V603</Code>
      <Name>Object was created but not used. If you wish to call constructor, use 'this-&gt;Foo::Foo(....)'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="ARR01-C" defaultLevel="LEVEL-1">
      <Code>V604</Code>
      <Name>Number of iterations in loop equals size of a pointer. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="INT02-C" defaultLevel="LEVEL-2">
      <Code>V605</Code>
      <Name>Unsigned value is compared to the NN number. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cert="MSC12-C" defaultLevel="LEVEL-1">
      <Code>V606</Code>
      <Name>Ownerless token 'Foo'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-482" defaultLevel="LEVEL-1">
      <Code>V607</Code>
      <Name>Ownerless expression 'Foo'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-3">
      <Code>V608</Code>
      <Name>Recurring sequence of explicit type casts.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-369" cert="INT33-C" defaultLevel="LEVEL-1">
      <Code>V609</Code>
      <Name>Possible division or mod by zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="INT34-C" defaultLevel="LEVEL-1">
      <Code>V610</Code>
      <Name>Undefined behavior. Check the shift operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-590,CWE-762" cert="MEM51-CPP" defaultLevel="LEVEL-1">
      <Code>V611</Code>
      <Name>Memory allocation and deallocation methods are incompatible.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V612</Code>
      <Name>Unconditional 'break/continue/return/goto' within a loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-761" cert="EXP08-C" defaultLevel="LEVEL-1">
      <Code>V613</Code>
      <Name>Suspicious pointer arithmetic with 'malloc/new'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-824,CWE-457" cert="EXP33-C,EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V614</Code>
      <Name>Use of 'Foo' uninitialized variable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="FLP34-C" defaultLevel="LEVEL-1">
      <Code>V615</Code>
      <Name>Suspicious explicit conversion from 'float *' type to 'double *' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V616</Code>
      <Name>Use of 'Foo' named constant with 0 value in bitwise operation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V617</Code>
      <Name>Argument of the '|' bitwise operation always contains non-zero value. Consider inspecting the condition.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-134" cert="FIO30-C" defaultLevel="LEVEL-2">
      <Code>V618</Code>
      <Name>Dangerous call of 'Foo' function. The passed line may contain format specification. Example of safe code: printf("%s", str);</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP08-C" defaultLevel="LEVEL-2">
      <Code>V619</Code>
      <Name>Array is used as pointer to single object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="EXP08-C" defaultLevel="LEVEL-1">
      <Code>V620</Code>
      <Name>Expression of sizeof(T)*N kind is summed up with pointer to T type. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" cert="MSC21-C" defaultLevel="LEVEL-1">
      <Code>V621</Code>
      <Name>Loop may execute incorrectly or may not execute at all. Consider inspecting the 'for' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-478" cert="DCL41-C" defaultLevel="LEVEL-1">
      <Code>V622</Code>
      <Name>First 'case' operator may be missing. Consider inspecting the 'switch' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-416" cert="DCL30-C" defaultLevel="LEVEL-1">
      <Code>V623</Code>
      <Name>Temporary object is created and then destroyed. Consider inspecting the '?:' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-547" defaultLevel="LEVEL-3">
      <Code>V624</Code>
      <Name>Use of constant NN. The resulting value may be inaccurate. Consider using the M_NN constant from &lt;math.h&gt;.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V625</Code>
      <Name>Initial and final values of the iterator are the same. Consider inspecting the 'for' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" defaultLevel="LEVEL-1">
      <Code>V626</Code>
      <Name>It's possible that ',' should be replaced by ';'. Consider checking for typos.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V627</Code>
      <Name>Argument of sizeof() is a macro, which expands to a number. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="EXP19-C" defaultLevel="LEVEL-1">
      <Code>V628</Code>
      <Name>It is possible that a line was commented out improperly, thus altering the program's operation logic.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT00-C" defaultLevel="LEVEL-1">
      <Code>V629</Code>
      <Name>Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" cert="MEM53-CPP" defaultLevel="LEVEL-1">
      <Code>V630</Code>
      <Name>The 'malloc' function is used to allocate memory for an array of objects that are classes containing constructors/destructors.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-30,CWE-37,CWE-39" defaultLevel="LEVEL-3">
      <Code>V631</Code>
      <Name>Defining absolute path to file or directory is considered a poor coding style. Consider inspecting the 'Foo' function call.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" cert="EXP37-C" defaultLevel="LEVEL-3">
      <Code>V632</Code>
      <Name>Argument is of the 'T' type. Consider inspecting the NN argument of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP45-C" defaultLevel="LEVEL-2">
      <Code>V633</Code>
      <Name>The '!=' operator should probably be used here. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="EXP00-C" defaultLevel="LEVEL-3">
      <Code>V634</Code>
      <Name>Priority of '+' operation is higher than priority of '&lt;&lt;' operation. Consider using parentheses in the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-135" cert="MEM35-C" defaultLevel="LEVEL-1">
      <Code>V635</Code>
      <Name>Length should be probably multiplied by sizeof(wchar_t). Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="FLP06-C" defaultLevel="LEVEL-3">
      <Code>V636</Code>
      <Name>Expression was implicitly cast from integer type to real type. Consider using an explicit type cast to avoid overflow or loss of a fractional part.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" defaultLevel="LEVEL-1">
      <Code>V637</Code>
      <Name>Use of two opposite conditions. The second condition is always false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V638</Code>
      <Name>Terminal null is present inside a string. Use of '\0xNN' characters. Probably meant: '\xNN'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-685" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V639</Code>
      <Name>One of closing ')' parentheses is probably positioned incorrectly. Consider inspecting the expression for function call.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" cert="EXP19-C" defaultLevel="LEVEL-1">
      <Code>V640</Code>
      <Name>Code's operational logic does not correspond with its formatting.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="EXP36-C" defaultLevel="LEVEL-1">
      <Code>V641</Code>
      <Name>Buffer size is not a multiple of element size.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V642</Code>
      <Name>Function result is saved inside the 'byte' type variable. Significant bits may be lost. This may break the program's logic.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="ARR30-C,EXP08-C" defaultLevel="LEVEL-1">
      <Code>V643</Code>
      <Name>Suspicious pointer arithmetic. Value of 'char' type is added to a string pointer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-664" defaultLevel="LEVEL-2">
      <Code>V644</Code>
      <Name>Suspicious function declaration. Consider creating a 'T' type object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-193,CWE-787" cert="STR31-C,ARR30-C" defaultLevel="LEVEL-2">
      <Code>V645</Code>
      <Name>Function call may lead to buffer overflow. Bounds should not contain size of a buffer, but a number of characters it can hold.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V646</Code>
      <Name>The 'else' keyword may be missing. Consider inspecting the program's logic.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-587" cert="INT36-C" defaultLevel="LEVEL-1">
      <Code>V647</Code>
      <Name>Value of 'A' type is assigned to a pointer of 'B' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="EXP00-C" defaultLevel="LEVEL-2">
      <Code>V648</Code>
      <Name>Priority of '&amp;&amp;' operation is higher than priority of '||' operation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" cert="MSC12-C" defaultLevel="LEVEL-2">
      <Code>V649</Code>
      <Name>Two 'if' statements with identical conditional expressions. The first 'if' statement contains function return. This means that the second 'if' statement is senseless.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-468" cert="EXP08-C" defaultLevel="LEVEL-2">
      <Code>V650</Code>
      <Name>Type casting is used 2 times in a row. The '+' operation is executed. Probably meant: (T1)((T2)a + b).</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V651</Code>
      <Name>Suspicious operation of 'sizeof(X)/sizeof(T)' kind, where 'X' is of the 'class' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V652</Code>
      <Name>Operation is executed 3 or more times in a row.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V653</Code>
      <Name>Suspicious string consisting of two parts is used for initialization. Comma may be missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-834" defaultLevel="LEVEL-1">
      <Code>V654</Code>
      <Name>Condition of a loop is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V655</Code>
      <Name>Strings were concatenated but not used. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-3">
      <Code>V656</Code>
      <Name>Variables are initialized through the call to the same function. It's probably an error or un-optimized code.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-393" defaultLevel="LEVEL-2">
      <Code>V657</Code>
      <Name>Function always returns the same value of NN. Consider inspecting the function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT30-C" defaultLevel="LEVEL-3">
      <Code>V658</Code>
      <Name>Value is subtracted from unsigned variable. It can result in an overflow. In such a case, the comparison operation may behave unexpectedly.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V659</Code>
      <Name>Functions' declarations with 'Foo' name differ in 'const' keyword only, while these functions' bodies have different composition. It is suspicious and can possibly be an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V660</Code>
      <Name>Program contains an unused label and function call: 'CC:AA()'. Probably meant: 'CC::AA()'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V661</Code>
      <Name>Suspicious expression 'A[B &lt; C]'. Probably meant 'A[B] &lt; C'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="CTR53-CPP" defaultLevel="LEVEL-1">
      <Code>V662</Code>
      <Name>Different containers are used to set up initial and final values of iterator. Consider inspecting the loop expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-834" defaultLevel="LEVEL-1">
      <Code>V663</Code>
      <Name>Infinite loop is possible. The 'cin.eof()' condition is insufficient to break from the loop. Consider adding the 'cin.fail()' function call to the conditional expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" cert="EXP34-C" defaultLevel="LEVEL-1">
      <Code>V664</Code>
      <Name>Pointer is dereferenced in the member initializer list before it is checked for null in the body of a constructor.</Name>
    </Rule>
    <Rule group="ga" cert="MSC00-C" defaultLevel="LEVEL-2">
      <Code>V665</Code>
      <Name>Possible incorrect use of '#pragma warning(default: X)'. The '#pragma warning(push/pop)' should be used instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-805" cert="EXP37-C" defaultLevel="LEVEL-3">
      <Code>V666</Code>
      <Name>Value may not correspond with the length of a string passed with YY argument. Consider inspecting the NNth argument of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="ERR50-CPP" defaultLevel="LEVEL-3">
      <Code>V667</Code>
      <Name>The 'throw' operator does not have any arguments and is not located within the 'catch' block.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" cert="MEM52-CPP" defaultLevel="LEVEL-2">
      <Code>V668</Code>
      <Name>Possible meaningless check for null, as memory was allocated using 'new' operator. Memory allocation will lead to an exception.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V669</Code>
      <Name>Argument is a non-constant reference. The analyzer is unable to determine the position where this argument is modified. Consider checking the function for an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP33-C,EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V670</Code>
      <Name>Uninitialized class member is used to initialize another member. Remember that members are initialized in the order of their declarations inside a class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-687" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V671</Code>
      <Name>The 'swap' function may interchange a variable with itself.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V672</Code>
      <Name>It is possible that creating a new variable is unnecessary. One of the function's arguments has the same name and this argument is a reference.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT02-C" defaultLevel="LEVEL-2">
      <Code>V673</Code>
      <Name>More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="FLP36-C" defaultLevel="LEVEL-1">
      <Code>V674</Code>
      <Name>Expression contains a suspicious mix of integer and real types.</Name>
    </Rule>
    <Rule group="ga" cert="STR30-C,ENV30-C" defaultLevel="LEVEL-1">
      <Code>V675</Code>
      <Name>Writing into read-only memory.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" cert="INT31-C" defaultLevel="LEVEL-3">
      <Code>V676</Code>
      <Name>Incorrect comparison of BOOL type variable with TRUE.</Name>
    </Rule>
    <Rule group="ga" cert="DCL37-C" defaultLevel="LEVEL-2">
      <Code>V677</Code>
      <Name>Custom declaration of standard type. Consider using the declaration from system header files instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-688" defaultLevel="LEVEL-2">
      <Code>V678</Code>
      <Name>Object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP33-C,EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V679</Code>
      <Name>The 'X' variable was not initialized. This variable is passed by reference to the 'Foo' function in which its value will be used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-401" defaultLevel="LEVEL-1">
      <Code>V680</Code>
      <Name>The 'delete A, B' expression only destroys the 'A' object. Then the ',' operator returns a resulting value from the right side of the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="EXP10-C" defaultLevel="LEVEL-2">
      <Code>V681</Code>
      <Name>The language standard does not define order in which 'Foo' functions are called during evaluation of arguments.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V682</Code>
      <Name>Suspicious literal: '/r'. It is possible that a backslash should be used instead: '\r'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" defaultLevel="LEVEL-2">
      <Code>V683</Code>
      <Name>The 'i' variable should probably be incremented instead of the 'n' variable. Consider inspecting the loop expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V684</Code>
      <Name>Value of variable is not modified. It is possible that '1' should be present instead of '0'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V685</Code>
      <Name>The expression contains a comma. Consider inspecting the return statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" defaultLevel="LEVEL-2">
      <Code>V686</Code>
      <Name>Pattern A || (A &amp;&amp; ...) was detected. The expression is excessive or contains a logical error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="EXP08-C" defaultLevel="LEVEL-2">
      <Code>V687</Code>
      <Name>Size of array calculated by sizeof() operator was added to a pointer. It is possible that the number of elements should be calculated by sizeof(A)/sizeof(A[0]).</Name>
    </Rule>
    <Rule group="ga" cert="DCL01-C" defaultLevel="LEVEL-3">
      <Code>V688</Code>
      <Name>The 'foo' local variable has the same name as one of class members. This can result in confusion.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" cert="OOP52-CPP" defaultLevel="LEVEL-1">
      <Code>V689</Code>
      <Name>Destructor of 'Foo' class is not declared as virtual. A smart pointer may not destroy an object correctly.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V690</Code>
      <Name>The class implements a copy constructor/operator=, but lacks the operator=/copy constructor.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V691</Code>
      <Name>Empirical analysis. Possible typo inside the string literal. The 'foo' word is suspicious.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-788" cert="STR32-C" defaultLevel="LEVEL-1">
      <Code>V692</Code>
      <Name>Inappropriate attempt to append a null character to a string. To determine the length of a string by 'strlen' function correctly, use a string ending with a null terminator in the first place.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-1">
      <Code>V693</Code>
      <Name>It is possible that 'i &lt; X.size()' should be used instead of 'X.size()'. Consider inspecting conditional expression of the loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" cert="ARR30-C" defaultLevel="LEVEL-1">
      <Code>V694</Code>
      <Name>The condition (ptr - const_value) is only false if the value of a pointer equals a magic constant.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670,CWE-561" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V695</Code>
      <Name>Range intersections are possible within conditional expressions.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="MSC01-C" defaultLevel="LEVEL-1">
      <Code>V696</Code>
      <Name>The 'continue' operator will terminate 'do { ... } while (FALSE)' loop because the condition is always false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="ARR01-C" defaultLevel="LEVEL-1">
      <Code>V697</Code>
      <Name>Number of elements in the allocated array equals the size of a pointer in bytes.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" cert="EXP12-C" defaultLevel="LEVEL-1">
      <Code>V698</Code>
      <Name>Functions of strcmp() kind can return any values, not only -1, 0, or 1.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-481" cert="EXP45-C" defaultLevel="LEVEL-2">
      <Code>V699</Code>
      <Name>It is possible that 'foo = bar == baz ? .... : ....' should be used here instead of 'foo = bar = baz ? .... : ....'. Consider inspecting the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V700</Code>
      <Name>It is suspicious that variable is initialized through itself. Consider inspecting the 'T foo = foo = x;' expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-401" cert="WIN30-C,MEM51-CPP" defaultLevel="LEVEL-2">
      <Code>V701</Code>
      <Name>Possible realloc() leak: when realloc() fails to allocate memory, original pointer is lost. Consider assigning realloc() to a temporary pointer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-544" defaultLevel="LEVEL-1">
      <Code>V702</Code>
      <Name>Classes should always be derived from std::exception (and alike) as 'public'.</Name>
    </Rule>
    <Rule group="ga" cert="DCL01-C" defaultLevel="LEVEL-2">
      <Code>V703</Code>
      <Name>It is suspicious that the 'foo' field in derived class overwrites field in base class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V704</Code>
      <Name>The expression is always false on newer compilers. Avoid using 'this == 0' comparison.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="EXP19-C" defaultLevel="LEVEL-1">
      <Code>V705</Code>
      <Name>It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V706</Code>
      <Name>Suspicious division: sizeof(X) / Value. Size of every element in X array is not equal to divisor.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V707</Code>
      <Name>Giving short names to global variables is considered to be bad practice.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="EXP50-CPP" defaultLevel="LEVEL-1">
      <Code>V708</Code>
      <Name>Dangerous construction is used: 'm[x] = m.size()', where 'm' is of 'T' class. This may lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="EXP13-C" defaultLevel="LEVEL-1">
      <Code>V709</Code>
      <Name>Suspicious comparison found: 'a == b == c'. Remember that 'a == b == c' is not equal to 'a == b &amp;&amp; b == c'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V710</Code>
      <Name>Suspicious declaration. There is no point to declare constant reference to a number.</Name>
    </Rule>
    <Rule group="ga" cert="DCL01-C" defaultLevel="LEVEL-1">
      <Code>V711</Code>
      <Name>It is dangerous to create a local variable within a loop with a same name as a variable controlling this loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" cert="MSC06-C" defaultLevel="LEVEL-1">
      <Code>V712</Code>
      <Name>Compiler may optimize out this loop or make it infinite. Use volatile variable(s) or synchronization primitives to avoid this.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" cert="EXP34-C" defaultLevel="LEVEL-1">
      <Code>V713</Code>
      <Name>Pointer was used in the logical expression before its check for nullptr in the same logical expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" cert="MSC13-C" defaultLevel="LEVEL-1">
      <Code>V714</Code>
      <Name>Variable is not passed into foreach loop by reference, but its value is changed inside of the loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="EXP15-C" defaultLevel="LEVEL-1">
      <Code>V715</Code>
      <Name>The 'while' operator has empty body. This pattern is suspicious.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V716</Code>
      <Name>Suspicious type conversion: HRESULT -&gt; BOOL (BOOL -&gt; HRESULT).</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-843" defaultLevel="LEVEL-2">
      <Code>V717</Code>
      <Name>It is suspicious to cast object of base class V to derived class U.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V718</Code>
      <Name>The 'Foo' function should not be called from 'DllMain' function.</Name>
    </Rule>
    <Rule group="ga" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V719</Code>
      <Name>The switch statement does not cover all values of the enum.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-676" defaultLevel="LEVEL-2">
      <Code>V720</Code>
      <Name>The 'SuspendThread' function is usually used when developing a debugger. See documentation for details.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665,CWE-697" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V721</Code>
      <Name>The VARIANT_BOOL type is used incorrectly. The true value (VARIANT_TRUE) is defined as -1.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V722</Code>
      <Name>Abnormality within similar comparisons. It is possible that a typo is present inside the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-416" cert="DCL30-C" defaultLevel="LEVEL-1">
      <Code>V723</Code>
      <Name>Function returns a pointer to the internal string buffer of a local object, which will be destroyed.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V724</Code>
      <Name>Converting integers or pointers to BOOL can lead to a loss of high-order bits. Non-zero value can become 'FALSE'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-2">
      <Code>V725</Code>
      <Name>Dangerous cast of 'this' to 'void*' type in the 'Base' class, as it is followed by a subsequent cast to 'Class' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-761" cert="MEM34-C" defaultLevel="LEVEL-1">
      <Code>V726</Code>
      <Name>Attempt to free memory containing the 'int A[10]' array by using the 'free(A)' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="STR31-C" defaultLevel="LEVEL-1">
      <Code>V727</Code>
      <Name>Return value of 'wcslen' function is not multiplied by 'sizeof(wchar_t)'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" defaultLevel="LEVEL-2">
      <Code>V728</Code>
      <Name>Excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'x' and '!x'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V729</Code>
      <Name>Function body contains the 'X' label that is not used by any 'goto' statements.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V730</Code>
      <Name>Not all members of a class are initialized inside the constructor.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V731</Code>
      <Name>The variable of char type is compared with pointer to string.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="INT31-C" defaultLevel="LEVEL-2">
      <Code>V732</Code>
      <Name>Unary minus operator does not modify a bool type value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="PRE01-C" defaultLevel="LEVEL-1">
      <Code>V733</Code>
      <Name>It is possible that macro expansion resulted in incorrect evaluation order.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V734</Code>
      <Name>Excessive expression. Examine the substrings "abc" and "abcd".</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V735</Code>
      <Name>Possibly an incorrect HTML. The "&lt;/XX&gt;" closing tag was encountered, while the "&lt;/YY&gt;" tag was expected.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="ARR36-C" defaultLevel="LEVEL-1">
      <Code>V736</Code>
      <Name>The behavior is undefined for arithmetic or comparisons with pointers that do not point to members of the same array.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V737</Code>
      <Name>It is possible that ',' comma is missing at the end of the string.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-672" cert="DCL30-C" defaultLevel="LEVEL-1">
      <Code>V738</Code>
      <Name>Temporary anonymous object is used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-20" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V739</Code>
      <Name>EOF should not be compared with a value of the 'char' type. Consider using the 'int' type.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V740</Code>
      <Name>Exception is of the 'int' type because NULL is defined as 0. Keyword 'nullptr' can be used for 'pointer' type exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V741</Code>
      <Name>Use of the throw (a, b); pattern. It is possible that type name was omitted: throw MyException(a, b);.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-170" cert="EXP37-C" defaultLevel="LEVEL-2">
      <Code>V742</Code>
      <Name>Function receives an address of a 'char' type variable instead of pointer to a buffer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-475" cert="EXP37-C" defaultLevel="LEVEL-1">
      <Code>V743</Code>
      <Name>The memory areas must not overlap. Use 'memmove' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-664,CWE-820" cert="MSC13-C" defaultLevel="LEVEL-1">
      <Code>V744</Code>
      <Name>Temporary object is immediately destroyed after being created. Consider naming the object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-1">
      <Code>V745</Code>
      <Name>A 'wchar_t *' type string is incorrectly converted to 'BSTR' type string.</Name>
    </Rule>
    <Rule group="ga" cert="ERR61-CPP" defaultLevel="LEVEL-1">
      <Code>V746</Code>
      <Name>Object slicing. An exception should be caught by reference rather than by value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V747</Code>
      <Name>Suspicious expression inside parentheses. A function name may be missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-762" cert="MEM51-CPP" defaultLevel="LEVEL-1">
      <Code>V748</Code>
      <Name>Memory for 'getline' function should be allocated only by 'malloc' or 'realloc' functions. Consider inspecting the first parameter of 'getline' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-675" cert="MEM53-CPP" defaultLevel="LEVEL-1">
      <Code>V749</Code>
      <Name>Destructor of the object will be invoked a second time after leaving the object's scope.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V750</Code>
      <Name>BSTR string becomes invalid. Notice that BSTR strings store their length before start of the text.</Name>
    </Rule>
    <Rule group="ga" cert="MSC13-C" defaultLevel="LEVEL-2">
      <Code>V751</Code>
      <Name>Parameter is not used inside function's body.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-788" cert="MEM54-CPP" defaultLevel="LEVEL-1">
      <Code>V752</Code>
      <Name>Creating an object with placement new requires a buffer of large size.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V753</Code>
      <Name>The '&amp;=' operation always sets a value of 'Foo' variable to zero.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V754</Code>
      <Name>The expression of 'foo(foo(x))' pattern is excessive or contains an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-123" cert="STR31-C" defaultLevel="LEVEL-2">
      <Code>V755</Code>
      <Name>Copying from potentially tainted data source. Buffer overflow is possible.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V756</Code>
      <Name>The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-690" cert="EXP12-C" defaultLevel="LEVEL-1">
      <Code>V757</Code>
      <Name>It is possible that an incorrect variable is compared with null after type conversion using 'dynamic_cast'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-416" cert="EXP54-CPP" defaultLevel="LEVEL-1">
      <Code>V758</Code>
      <Name>Reference was invalidated because of destruction of the temporary object returned by the function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-703" cert="ERR54-CPP" defaultLevel="LEVEL-1">
      <Code>V759</Code>
      <Name>Violated order of exception handlers. Exception caught by handler for base class.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V760</Code>
      <Name>Two identical text blocks were detected. The second block starts with NN string.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V761</Code>
      <Name>NN identical blocks were found.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V762</Code>
      <Name>Consider inspecting virtual function arguments. See NN argument of function 'Foo' in derived class and base class.</Name>
    </Rule>
    <Rule group="ga" cert="MSC13-C" defaultLevel="LEVEL-2">
      <Code>V763</Code>
      <Name>Parameter is always rewritten in function body before being used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-683" cert="EXP37-C" defaultLevel="LEVEL-2">
      <Code>V764</Code>
      <Name>Possible incorrect order of arguments passed to function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V765</Code>
      <Name>Compound assignment expression 'X += X + N' is suspicious. Consider inspecting it for a possible error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-462" defaultLevel="LEVEL-1">
      <Code>V766</Code>
      <Name>An item with the same key has already been added.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V767</Code>
      <Name>Suspicious access to element by a constant index inside a loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-2">
      <Code>V768</Code>
      <Name>Variable is of enum type. It is suspicious that it is used as a variable of a Boolean-type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-119" cert="EXP08-C" defaultLevel="LEVEL-3">
      <Code>V769</Code>
      <Name>The pointer in the expression equals nullptr. The resulting value is meaningless and should not be used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V770</Code>
      <Name>Possible use of left shift operator instead of comparison operator.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V771</Code>
      <Name>The '?:' operator uses constants from different enums.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="MSC15-C" defaultLevel="LEVEL-1">
      <Code>V772</Code>
      <Name>Calling the 'delete' operator for a void pointer will cause undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-401,CWE-775" cert="MEM31-C,MEM51-CPP" defaultLevel="LEVEL-1">
      <Code>V773</Code>
      <Name>Function exited without releasing the pointer/handle. A memory/resource leak is possible.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-416" cert="MEM30-C,MEM50-CPP" defaultLevel="LEVEL-1">
      <Code>V774</Code>
      <Name>Pointer was used after the memory was released.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1023" defaultLevel="LEVEL-1">
      <Code>V775</Code>
      <Name>It is suspicious that the BSTR data type is compared using a relational operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-2">
      <Code>V776</Code>
      <Name>Potentially infinite loop. The variable in the loop exit condition does not change its value between iterations.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-468" cert="CTR56-CPP" defaultLevel="LEVEL-1">
      <Code>V777</Code>
      <Name>Dangerous widening type conversion from an array of derived-class objects to a base-class pointer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V778</Code>
      <Name>Two similar code fragments. Perhaps, it is a typo and 'X' variable should be used instead of 'Y'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" cert="MSC12-C" defaultLevel="LEVEL-2">
      <Code>V779</Code>
      <Name>Unreachable code was detected. It is possible that an error is present.</Name>
    </Rule>
    <Rule group="ga" cert="EXP62-CPP,OOP57-CPP" defaultLevel="LEVEL-3">
      <Code>V780</Code>
      <Name>The object of non-passive (non-PDS) type cannot be used with the function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-789,CWE-129,CWE-20" cert="MEM35-C,CTR50-CPP,API00-C" defaultLevel="LEVEL-1">
      <Code>V781</Code>
      <Name>Value of a variable is checked after it is used. Possible error in program's logic. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-469" cert="ARR36-C" defaultLevel="LEVEL-2">
      <Code>V782</Code>
      <Name>It is pointless to compute the distance between the elements of different arrays.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-119" cert="CTR51-CPP" defaultLevel="LEVEL-1">
      <Code>V783</Code>
      <Name>Possible dereference of invalid iterator 'X'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="INT31-C" defaultLevel="LEVEL-2">
      <Code>V784</Code>
      <Name>The size of the bit mask is less than the size of the first operand. This will cause the loss of the higher bits.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V785</Code>
      <Name>Constant expression in switch statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="MSC01-C" defaultLevel="LEVEL-2">
      <Code>V786</Code>
      <Name>Assigning the value C to the X variable looks suspicious. The value range of the variable: [A, B].</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V787</Code>
      <Name>Wrong variable is probably used in the for operator as an index.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V788</Code>
      <Name>Review captured variable in lambda expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-672" cert="CTR53-CPP" defaultLevel="LEVEL-1">
      <Code>V789</Code>
      <Name>Iterators for the container, used in the range-based for loop, become invalid upon a function call.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V790</Code>
      <Name>It is suspicious that the assignment operator takes an object by a non-constant reference and returns this object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V791</Code>
      <Name>The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V792</Code>
      <Name>The function located to the right of the '|' and '&amp;' operators will be called regardless of the value of the left operand. Consider using '||' and '&amp;&amp;' instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="INT31-C" defaultLevel="LEVEL-2">
      <Code>V793</Code>
      <Name>It is suspicious that the result of the statement is a part of the condition. Perhaps, this statement should have been compared with something else.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-2">
      <Code>V794</Code>
      <Name>The assignment operator should be protected from the case of 'this == &amp;src'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V795</Code>
      <Name>Size of the 'time_t' type is not 64 bits. After the year 2038, the program will work incorrectly.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-484" cert="MSC17-C" defaultLevel="LEVEL-3">
      <Code>V796</Code>
      <Name>A 'break' statement is probably missing in a 'switch' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" cert="EXP12-C" defaultLevel="LEVEL-1">
      <Code>V797</Code>
      <Name>The function is used as if it returned a bool type. The return value of the function should probably be compared with std::string::npos.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-789" cert="ARR02-C" defaultLevel="LEVEL-1">
      <Code>V798</Code>
      <Name>The size of the dynamic array can be less than the number of elements in the initializer.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V799</Code>
      <Name>Variable is not used after memory is allocated for it. Consider checking the use of this variable.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V801</Code>
      <Name>Decreased performance. It is better to redefine the N function argument as a reference. Consider replacing 'const T' with 'const .. &amp;T' / 'const .. *T'.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V802</Code>
      <Name>On 32-bit/64-bit platform, structure size can be reduced from N to K bytes by rearranging the fields according to their sizes in decreasing order.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V803</Code>
      <Name>Decreased performance. It is more effective to use the prefix form of ++it. Replace iterator++ with ++iterator.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V804</Code>
      <Name>Decreased performance. The 'Foo' function is called twice in the specified expression to calculate length of the same string.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V805</Code>
      <Name>Decreased performance. It is inefficient to identify an empty string by using 'strlen(str) &gt; 0' construct. A more efficient way is to check: str[0] != '\0'.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V806</Code>
      <Name>Decreased performance. The expression of strlen(MyStr.c_str()) kind can be rewritten as MyStr.length().</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V807</Code>
      <Name>Decreased performance. Consider creating a pointer/reference to avoid using the same expression repeatedly.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V808</Code>
      <Name>An array/object was declared but was not utilized.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V809</Code>
      <Name>Verifying that a pointer value is not NULL is not required. The 'if (ptr != NULL)' check can be removed.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V810</Code>
      <Name>Decreased performance. The 'A' function was called several times with identical arguments. The result should possibly be saved to a temporary variable, which then could be used while calling the 'B' function.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V811</Code>
      <Name>Decreased performance. Excessive type casting: string -&gt; char * -&gt; string.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V812</Code>
      <Name>Decreased performance. Ineffective use of the 'count' function. It can possibly be replaced by the call to the 'find' function.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V813</Code>
      <Name>Decreased performance. The argument should probably be rendered as a constant pointer/reference.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V814</Code>
      <Name>Decreased performance. The 'strlen' function was called multiple times inside the body of a loop.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V815</Code>
      <Name>Decreased performance. Consider replacing the expression 'AA' with 'BB'.</Name>
    </Rule>
    <Rule group="op" cert="ERR61-CPP" defaultLevel="LEVEL-3">
      <Code>V816</Code>
      <Name>It is more efficient to catch exception by reference rather than by value.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V817</Code>
      <Name>It is more efficient to search for 'X' character rather than a string.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V818</Code>
      <Name>It is more efficient to use an initialization list rather than an assignment operator.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V819</Code>
      <Name>Decreased performance. Memory is allocated and released multiple times inside the loop body.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V820</Code>
      <Name>The variable is not used after copying. Copying can be replaced with move/swap for optimization.</Name>
    </Rule>
    <Rule group="op" cert="DCL19-C" defaultLevel="LEVEL-3">
      <Code>V821</Code>
      <Name>The variable can be constructed in a lower level scope.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V822</Code>
      <Name>Decreased performance. A new object is created, while a reference to an object is expected.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V823</Code>
      <Name>Decreased performance. Object may be created in-place in a container. Consider replacing methods: 'insert' -&gt; 'emplace', 'push_*' -&gt; 'emplace_*'.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V824</Code>
      <Name>It is recommended to use the 'make_unique/make_shared' function to create smart pointers.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V825</Code>
      <Name>Expression is equivalent to moving one unique pointer to another. Consider using 'std::move' instead.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V826</Code>
      <Name>Consider replacing standard container with a different one.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V827</Code>
      <Name>Maximum size of a vector is known at compile time. Consider pre-allocating it by calling reserve(N).</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V828</Code>
      <Name>Decreased performance. Moving an object in a return statement prevents copy elision.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V829</Code>
      <Name>Lifetime of the heap-allocated variable is limited to the current function's scope. Consider allocating it on the stack instead.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V830</Code>
      <Name>Decreased performance. Consider replacing the use of 'std::optional::value()' with either the '*' or '-&gt;' operator.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V831</Code>
      <Name>Decreased performance. Consider replacing the call to the 'at()' method with the 'operator[]'.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V832</Code>
      <Name>It's better to use '= default;' syntax instead of empty body.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V833</Code>
      <Name>Using 'std::move' function's with const object disables move semantics.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V834</Code>
      <Name>Incorrect type of a loop variable. This leads to the variable binding to a temporary object instead of a range element.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V835</Code>
      <Name>Passing cheap-to-copy argument by reference may lead to decreased performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V836</Code>
      <Name>Expression's value is copied at the variable declaration. The variable is never modified. Consider declaring it as a reference.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V837</Code>
      <Name>The 'emplace' / 'insert' function does not guarantee that arguments will not be copied or moved if there is no insertion. Consider using the 'try_emplace' function.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-2">
      <Code>V838</Code>
      <Name>Temporary object is constructed during lookup in ordered associative container. Consider using a container with heterogeneous lookup to avoid construction of temporary objects.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-1">
      <Code>V839</Code>
      <Name>Function returns a constant value. This may interfere with move semantics.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-14,CWE-563" cert="MSC13-C,MSC06-C" defaultLevel="LEVEL-2">
      <Code>V1001</Code>
      <Name>Variable is assigned but not used by the end of the function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V1002</Code>
      <Name>Class that contains pointers, constructor and destructor is copied by the automatically generated operator= or copy constructor.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V1003</Code>
      <Name>Macro expression is dangerous or suspicious.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628,CWE-476,CWE-119" cert="EXP37-C,EXP34-C,EXP08-C" defaultLevel="LEVEL-1">
      <Code>V1004</Code>
      <Name>Pointer was used unsafely after its check for nullptr.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-1">
      <Code>V1005</Code>
      <Name>The resource was acquired using 'X' function but was released using incompatible 'Y' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-675" cert="MEM56-CPP" defaultLevel="LEVEL-1">
      <Code>V1006</Code>
      <Name>Several shared_ptr objects are initialized by the same pointer. A double memory deallocation will occur.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V1007</Code>
      <Name>Value from the uninitialized optional is used. It may be an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V1008</Code>
      <Name>No more than one iteration of the loop will be performed. Consider inspecting the 'for' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V1009</Code>
      <Name>Check the array initialization. Only the first element is initialized explicitly.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-20,CWE-138,CWE-78,CWE-134" defaultLevel="LEVEL-1">
      <Code>V1010</Code>
      <Name>Unchecked tainted data is used in expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-2">
      <Code>V1011</Code>
      <Name>Function execution could be deferred. Consider specifying execution policy explicitly.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-192" cert="INT30-C" defaultLevel="LEVEL-1">
      <Code>V1012</Code>
      <Name>The expression is always false. Overflow check is incorrect.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V1013</Code>
      <Name>Suspicious subexpression in a sequence of similar comparisons.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="FLP37-C" defaultLevel="LEVEL-3">
      <Code>V1014</Code>
      <Name>Structures with members of real type are compared byte-wise.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="EXP46-C" defaultLevel="LEVEL-2">
      <Code>V1015</Code>
      <Name>Suspicious simultaneous use of bitwise and logical operators.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-681" cert="INT50-CPP" defaultLevel="LEVEL-2">
      <Code>V1016</Code>
      <Name>The value is out of range of enum values. This causes unspecified or undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-416" defaultLevel="LEVEL-1">
      <Code>V1017</Code>
      <Name>Variable of the 'string_view' type references a temporary object, which will be removed after evaluation of an expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-413,CWE-833" defaultLevel="LEVEL-1">
      <Code>V1018</Code>
      <Name>Usage of a suspicious mutex wrapper. It is probably unused, uninitialized, or already locked.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" cert="INT31-C" defaultLevel="LEVEL-2">
      <Code>V1019</Code>
      <Name>Compound assignment expression is used inside condition.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-772" defaultLevel="LEVEL-2">
      <Code>V1020</Code>
      <Name>Function exited without performing epilogue actions. It is possible that there is an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-1">
      <Code>V1021</Code>
      <Name>The variable is assigned the same value on several loop iterations.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-755" defaultLevel="LEVEL-1">
      <Code>V1022</Code>
      <Name>Exception was thrown by pointer. Consider throwing it by value instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-460" cert="ERR56-CPP" defaultLevel="LEVEL-2">
      <Code>V1023</Code>
      <Name>A pointer without owner is added to the container by the 'emplace_back' method. A memory leak will occur in case of an exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-20" cert="FIO40-C" defaultLevel="LEVEL-2">
      <Code>V1024</Code>
      <Name>Potential use of invalid data. The stream is checked for EOF before reading from it but is not checked after reading.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-820" defaultLevel="LEVEL-2">
      <Code>V1025</Code>
      <Name>New variable with default value is created instead of 'std::unique_lock' that locks on the mutex.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT32-C" defaultLevel="LEVEL-2">
      <Code>V1026</Code>
      <Name>The variable is incremented in the loop. Undefined behavior will occur in case of signed integer overflow.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-3">
      <Code>V1027</Code>
      <Name>Pointer to an object of the class is cast to unrelated class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT30-C" defaultLevel="LEVEL-1">
      <Code>V1028</Code>
      <Name>Possible overflow. Consider casting operands, not the result.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-197" cert="INT31-C" defaultLevel="LEVEL-2">
      <Code>V1029</Code>
      <Name>Numeric Truncation Error. Return value of function is written to N-bit variable.</Name>
    </Rule>
    <Rule group="ga" cert="EXP63-CPP" defaultLevel="LEVEL-1">
      <Code>V1030</Code>
      <Name>Variable is used after it is moved.</Name>
    </Rule>
    <Rule group="ga" cert="DCL31-C" defaultLevel="LEVEL-2">
      <Code>V1031</Code>
      <Name>Function is not declared. The passing of data to or from this function may be affected.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-843" cert="EXP36-C" defaultLevel="LEVEL-2">
      <Code>V1032</Code>
      <Name>Pointer is cast to a more strictly aligned pointer type.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1033</Code>
      <Name>Variable is declared as auto in C. Its default type is int.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-834" cert="FLP30-C" defaultLevel="LEVEL-3">
      <Code>V1034</Code>
      <Name>Do not use real-type variables as loop counters.</Name>
    </Rule>
    <Rule group="ga" cert="FIO44-C" defaultLevel="LEVEL-3">
      <Code>V1035</Code>
      <Name>Only values returned from fgetpos() can be used as arguments to fsetpos().</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-609" defaultLevel="LEVEL-3">
      <Code>V1036</Code>
      <Name>Potentially unsafe double-checked locking.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-3">
      <Code>V1037</Code>
      <Name>Two or more case-branches perform the same actions.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-468" defaultLevel="LEVEL-3">
      <Code>V1038</Code>
      <Name>It is suspicious that a char or string literal is added to a pointer.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1039</Code>
      <Name>Character escape is used in multicharacter literal. This causes implementation-defined behavior.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1040</Code>
      <Name>Possible typo in the spelling of a pre-defined macro name.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-825" cert="EXP54-CPP" defaultLevel="LEVEL-1">
      <Code>V1041</Code>
      <Name>Class member is initialized with dangling reference.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1177" defaultLevel="LEVEL-1">
      <Code>V1042</Code>
      <Name>This file is marked with copyleft license, which requires you to open the derived source code.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1043</Code>
      <Name>A global object variable is declared in the header. Multiple copies of it will be created in all translation units that include this header file.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-834" defaultLevel="LEVEL-2">
      <Code>V1044</Code>
      <Name>Loop break conditions do not depend on the number of iterations.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-248,CWE-703" cert="DCL57-CPP" defaultLevel="LEVEL-3">
      <Code>V1045</Code>
      <Name>The DllMain function throws an exception. Consider wrapping the throw operator in a try..catch block.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="INT31-C" defaultLevel="LEVEL-1">
      <Code>V1046</Code>
      <Name>Unsafe usage of the 'bool' and integer types together in the operation '&amp;='.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-672" cert="EXP61-CPP" defaultLevel="LEVEL-1">
      <Code>V1047</Code>
      <Name>Lifetime of the lambda is greater than lifetime of the local variable captured by reference.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1164" defaultLevel="LEVEL-2">
      <Code>V1048</Code>
      <Name>Variable 'foo' was assigned the same value.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1049</Code>
      <Name>The 'foo' include guard is already defined in the 'bar1.h' header. The 'bar2.h' header will be excluded from compilation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" cert="EXP33-C,EXP53-CPP" defaultLevel="LEVEL-1">
      <Code>V1050</Code>
      <Name>Uninitialized class member is used when initializing the base class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-754" defaultLevel="LEVEL-3">
      <Code>V1051</Code>
      <Name>It is possible that an assigned variable should be checked in the next condition. Consider checking for typos.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1052</Code>
      <Name>Declaring virtual methods in a class marked as 'final' is pointless.</Name>
    </Rule>
    <Rule group="ga" cert="OOP50-CPP" defaultLevel="LEVEL-1">
      <Code>V1053</Code>
      <Name>Calling the 'foo' virtual function in the constructor/destructor may lead to unexpected result at runtime.</Name>
    </Rule>
    <Rule group="ga" cert="OOP51-CPP" defaultLevel="LEVEL-2">
      <Code>V1054</Code>
      <Name>Object slicing. Derived class object was copied to the base class object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-131" defaultLevel="LEVEL-1">
      <Code>V1055</Code>
      <Name>The 'sizeof' expression returns the size of the container type, not the number of elements. Consider using the 'size()' function.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1056</Code>
      <Name>The predefined identifier '__func__' always contains the string 'operator()' inside function body of the overloaded 'operator()'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-337" cert="MSC51-CPP" defaultLevel="LEVEL-3">
      <Code>V1057</Code>
      <Name>Pseudo random sequence is the same at every program run. Consider assigning the seed to a value not known at compile-time.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1025" cert="EXP16-C" defaultLevel="LEVEL-1">
      <Code>V1058</Code>
      <Name>Nonsensical comparison of two different functions' addresses.</Name>
    </Rule>
    <Rule group="ga" cert="DCL51-CPP" defaultLevel="LEVEL-3">
      <Code>V1059</Code>
      <Name>Macro name overrides a keyword/reserved name. This may lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1060</Code>
      <Name>Passing 'BSTR ' to the 'SysAllocString' function may lead to incorrect object creation.</Name>
    </Rule>
    <Rule group="ga" cert="DCL58-CPP" defaultLevel="LEVEL-1">
      <Code>V1061</Code>
      <Name>Extending 'std' or 'posix' namespace may result in undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-762" defaultLevel="LEVEL-1">
      <Code>V1062</Code>
      <Name>Class defines a custom new or delete operator. The opposite operator must also be defined.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V1063</Code>
      <Name>The modulo by 1 operation is meaningless. The result will always be zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V1064</Code>
      <Name>The left operand of integer division is less than the right one. The result will always be zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V1065</Code>
      <Name>Expression can be simplified: check similar operands.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-762" cert="MEM51-CPP" defaultLevel="LEVEL-1">
      <Code>V1066</Code>
      <Name>The 'SysFreeString' function should be called only for objects of the 'BSTR' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-755" defaultLevel="LEVEL-2">
      <Code>V1067</Code>
      <Name>Throwing from exception constructor may lead to unexpected behavior.</Name>
    </Rule>
    <Rule group="ga" cert="DCL59-CPP" defaultLevel="LEVEL-2">
      <Code>V1068</Code>
      <Name>Do not define an unnamed namespace in a header file.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V1069</Code>
      <Name>Do not concatenate string literals with different prefixes.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-681" cert="INT32-C" defaultLevel="LEVEL-2">
      <Code>V1070</Code>
      <Name>Signed value is converted to an unsigned one with subsequent expansion to a larger type in ternary operator.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V1071</Code>
      <Name>Return value is not always used. Consider inspecting the 'foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-212" cert="MEM03-C" defaultLevel="LEVEL-1">
      <Code>V1072</Code>
      <Name>Buffer needs to be securely cleared on all execution paths.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" defaultLevel="LEVEL-2">
      <Code>V1073</Code>
      <Name>Check the following code block after the 'if' statement. Consider checking for typos.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V1074</Code>
      <Name>Boundary between numeric escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1075</Code>
      <Name>The function expects the file to be opened in one mode, but it was opened in different mode.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-506" defaultLevel="LEVEL-1">
      <Code>V1076</Code>
      <Name>Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" defaultLevel="LEVEL-3">
      <Code>V1077</Code>
      <Name>Conditional initialization inside the constructor may leave some members uninitialized.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1078</Code>
      <Name>An empty container is iterated. The loop will not be executed.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V1079</Code>
      <Name>Parameter of 'std::stop_token' type is not used inside function's body.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-2">
      <Code>V1080</Code>
      <Name>Call of 'std::is_constant_evaluated' function always returns the same value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT32-C" defaultLevel="LEVEL-3">
      <Code>V1081</Code>
      <Name>Argument of abs() function is minimal negative value. Such absolute value can't be represented in two's complement. This leads to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cert="MSC53-CPP" defaultLevel="LEVEL-1">
      <Code>V1082</Code>
      <Name>Function marked as 'noreturn' may return control. This will result in undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT32-C" defaultLevel="LEVEL-2">
      <Code>V1083</Code>
      <Name>Signed integer overflow in arithmetic expression. This leads to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1024" cert="EXP62-CPP" defaultLevel="LEVEL-2">
      <Code>V1084</Code>
      <Name>The expression is always true/false. The value is out of range of enum values.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="INT32-C" defaultLevel="LEVEL-2">
      <Code>V1085</Code>
      <Name>Negative value is implicitly converted to unsigned integer type in arithmetic expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-119,CWE-467,CWE-682" cert="ARR01-C" defaultLevel="LEVEL-2">
      <Code>V1086</Code>
      <Name>Call of the 'Foo' function will lead to buffer underflow.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-2">
      <Code>V1087</Code>
      <Name>Upper bound of case range is less than its lower bound. This case may be unreachable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" cert="CON43-C" defaultLevel="LEVEL-2">
      <Code>V1088</Code>
      <Name>No objects are passed to the 'std::scoped_lock' constructor. No locking will be performed. This can cause concurrency issues.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-820" defaultLevel="LEVEL-2">
      <Code>V1089</Code>
      <Name>Waiting on condition variable without predicate. A thread can wait indefinitely or experience a spurious wake-up.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-248" defaultLevel="LEVEL-2">
      <Code>V1090</Code>
      <Name>The 'std::uncaught_exception' function is deprecated since C++17 and is removed in C++20. Consider replacing this function with 'std::uncaught_exceptions'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" cert="INT36-C" defaultLevel="LEVEL-2">
      <Code>V1091</Code>
      <Name>The pointer is cast to an integer type of a larger size. Casting pointer to a type of a larger size is an implementation-defined behavior.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1092</Code>
      <Name>Recursive function call during the static/thread_local variable initialization might occur. This may lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1093</Code>
      <Name>The result of the right shift operation will always be 0. The right operand is greater than or equal to the number of bits in the left operand.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1094</Code>
      <Name>Conditional escape sequence in literal. Its representation is implementation-defined.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-775" defaultLevel="LEVEL-1">
      <Code>V1095</Code>
      <Name>Usage of potentially invalid handle. The value should be non-negative.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V1096</Code>
      <Name>Variable with static storage duration is declared inside the inline function with external linkage. This may lead to ODR violation.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1097</Code>
      <Name>Line splice results in a character sequence that matches the syntax of a universal-character-name. Using this sequence lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-826" defaultLevel="LEVEL-1">
      <Code>V1098</Code>
      <Name>The 'emplace' / 'insert' function call contains potentially dangerous move operation. Moved object can be destroyed even if there is no insertion.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-908" cert="EXP54-CPP" defaultLevel="LEVEL-1">
      <Code>V1099</Code>
      <Name>Using the function of uninitialized derived class while initializing the base class will lead to undefined behavior.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-826" defaultLevel="LEVEL-1">
      <Code>V1100</Code>
      <Name>Unreal Engine. Declaring a pointer to a type derived from 'UObject' in a class that is not derived from 'UObject' is dangerous. The pointer may start pointing to an invalid object after garbage collection.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V1101</Code>
      <Name>Changing the default argument of a virtual function parameter in a derived class may result in unexpected behavior.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1102</Code>
      <Name>Unreal Engine. Violation of naming conventions may cause Unreal Header Tool to work incorrectly.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-188" cert="EXP42-C" defaultLevel="LEVEL-2">
      <Code>V1103</Code>
      <Name>The values of padding bytes are unspecified. Comparing objects with padding using 'memcmp' may lead to unexpected result.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" cert="EXP00-C" defaultLevel="LEVEL-3">
      <Code>V1104</Code>
      <Name>Priority of the 'M' operator is higher than that of the 'N' operator. Possible missing parentheses.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V1105</Code>
      <Name>Suspicious string modification using the 'operator+='. The right operand is implicitly converted to a character type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-772" defaultLevel="LEVEL-3">
      <Code>V1106</Code>
      <Name>Qt. Class inherited from 'QObject' should contain at least one constructor that takes a pointer to 'QObject'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V1107</Code>
      <Name>Function was declared as accepting unspecified number of parameters. Consider explicitly specifying the function parameters list.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1108</Code>
      <Name>Constraint specified in a custom function annotation on the parameter is violated.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-477" defaultLevel="LEVEL-1">
      <Code>V1109</Code>
      <Name>Function is deprecated. Consider switching to an equivalent newer function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-772" defaultLevel="LEVEL-2">
      <Code>V1110</Code>
      <Name>Constructor of a class inherited from 'QObject' does not use a pointer to a parent object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-20" cert="API00-C" defaultLevel="LEVEL-3">
      <Code>V1111</Code>
      <Name>The index was used without check after it was checked in previous lines.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V1112</Code>
      <Name>Comparing expressions with different signedness can lead to unexpected results.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1113</Code>
      <Name>Potential resource leak. Calling the 'memset' function will change the pointer itself, not the allocated resource. Check the first and third arguments.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-911" defaultLevel="LEVEL-2">
      <Code>V1114</Code>
      <Name>Suspicious use of type conversion operator when working with COM interfaces. Consider using the 'QueryInterface' member function.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V1115</Code>
      <Name>Function annotated with the 'pure' attribute has side effects.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-778" defaultLevel="LEVEL-1">
      <Code>V1116</Code>
      <Name>Creating an exception object without an explanatory message may result in insufficient logging.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V1117</Code>
      <Name>The declared function type is cv-qualified. The behavior when using this type is undefined.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-269" defaultLevel="LEVEL-2">
      <Code>V1118</Code>
      <Name>Excessive file permissions can lead to vulnerabilities. Consider restricting file permissions.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-477" cert="MSC24-C" defaultLevel="LEVEL-2">
      <Code>V2001</Code>
      <Name>Consider using the extended version of the 'foo' function here.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-477" cert="MSC24-C" defaultLevel="LEVEL-1">
      <Code>V2002</Code>
      <Name>Consider using the 'Ptr' version of the 'foo' function here.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-681" cert="FLP34-C" defaultLevel="LEVEL-2">
      <Code>V2003</Code>
      <Name>Explicit conversion from 'float/double' type to signed integer type.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-681" cert="FLP34-C" defaultLevel="LEVEL-2">
      <Code>V2004</Code>
      <Name>Explicit conversion from 'float/double' type to unsigned integer type.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-3">
      <Code>V2005</Code>
      <Name>C-style explicit type casting is utilized. Consider using: static_cast/const_cast/reinterpret_cast.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2006</Code>
      <Name>Implicit type conversion from enum type to integer type.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V2007</Code>
      <Name>This expression can be simplified. One of the operands in the operation equals NN. Probably it is a mistake.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-407" defaultLevel="LEVEL-1">
      <Code>V2008</Code>
      <Name>Cyclomatic complexity: NN. Consider refactoring the 'Foo' function.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-3">
      <Code>V2009</Code>
      <Name>Consider passing the 'Foo' argument as a pointer/reference to const.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2010</Code>
      <Name>Handling of two different exception types is identical.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2011</Code>
      <Name>Consider inspecting signed and unsigned function arguments. See NN argument of function 'Foo' in derived class and base class.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-2">
      <Code>V2012</Code>
      <Name>Possibility of decreased performance. It is advised to pass arguments to std::unary_function/std::binary_function template as references.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-704" defaultLevel="LEVEL-1">
      <Code>V2013</Code>
      <Name>Consider inspecting the correctness of handling the N argument in the 'Foo' function.</Name>
    </Rule>
    <Rule group="cs" cert="ERR50-CPP" defaultLevel="LEVEL-2">
      <Code>V2014</Code>
      <Name>Don't use terminating functions in library code.</Name>
    </Rule>
    <Rule group="cs" cert="DCL01-C" defaultLevel="LEVEL-2">
      <Code>V2015</Code>
      <Name>An identifier declared in an inner scope should not hide an identifier in an outer scope.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-1177" defaultLevel="LEVEL-1">
      <Code>V2016</Code>
      <Name>Consider inspecting the function call. The function was annotated as dangerous.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-3">
      <Code>V2017</Code>
      <Name>String literal is identical to variable name. It is possible that the variable should be used instead of the string literal.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2018</Code>
      <Name>Cast should not remove 'const' qualifier from the type that is pointed to by a pointer or a reference.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2019</Code>
      <Name>Cast should not remove 'volatile' qualifier from the type that is pointed to by a pointer or a reference.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-2">
      <Code>V2020</Code>
      <Name>The loop body contains the 'break;' / 'continue;' statement. This may complicate the control flow.</Name>
    </Rule>
    <Rule group="cs" cwe="CWE-617" cert="ERR06-C" defaultLevel="LEVEL-1">
      <Code>V2021</Code>
      <Name>Using assertions may cause the abnormal program termination in undesirable contexts.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-1">
      <Code>V2022</Code>
      <Name>Implicit type conversion from integer type to enum type.</Name>
    </Rule>
    <Rule group="cs" defaultLevel="LEVEL-3">
      <Code>V2023</Code>
      <Name>Absence of the 'override' specifier when overriding a virtual function may cause a mismatch of signatures.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-7.1,MISRA-C-2023-7.1,MISRA-CPP-2008-2.13.2" defaultLevel="LEVEL-2">
      <Code>V2501</Code>
      <Name>MISRA. Octal constants should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.1,MISRA-C-2023-15.1" defaultLevel="LEVEL-3">
      <Code>V2502</Code>
      <Name>MISRA. The 'goto' statement should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.12,MISRA-C-2023-8.12" defaultLevel="LEVEL-2">
      <Code>V2503</Code>
      <Name>MISRA. Implicitly specified enumeration constants should be unique – consider specifying non-unique constants explicitly.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.11,MISRA-C-2023-8.11,MISRA-CPP-2008-3.1.3" defaultLevel="LEVEL-3">
      <Code>V2504</Code>
      <Name>MISRA. Size of an array is not specified.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.2,MISRA-C-2023-15.2,MISRA-CPP-2008-6.6.2" defaultLevel="LEVEL-2">
      <Code>V2505</Code>
      <Name>MISRA. The 'goto' statement shouldn't jump to a label declared earlier.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.5,MISRA-C-2023-15.5,MISRA-CPP-2008-6.6.5" defaultLevel="LEVEL-3">
      <Code>V2506</Code>
      <Name>MISRA. A function should have a single point of exit at the end.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.6,MISRA-C-2023-15.6,MISRA-CPP-2008-6.3.1,MISRA-CPP-2008-6.4.1" defaultLevel="LEVEL-2">
      <Code>V2507</Code>
      <Name>MISRA. The body of a loop\conditional statement should be enclosed in braces.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-21.7,MISRA-C-2023-21.7,MISRA-CPP-2008-18.0.2" defaultLevel="LEVEL-2">
      <Code>V2508</Code>
      <Name>MISRA. The function with the 'atof/atoi/atol/atoll' name should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.8,MISRA-C-2023-21.8,MISRA-CPP-2008-18.0.3" defaultLevel="LEVEL-2">
      <Code>V2509</Code>
      <Name>MISRA. The function with the 'abort/exit/getenv/system' name should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.9,MISRA-C-2023-21.9" defaultLevel="LEVEL-2">
      <Code>V2510</Code>
      <Name>MISRA. The function with the 'qsort/bsearch' name should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.3,MISRA-C-2023-21.3,MISRA-CPP-2008-18.4.1" defaultLevel="LEVEL-2">
      <Code>V2511</Code>
      <Name>MISRA. Memory allocation and deallocation functions should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.4,MISRA-C-2023-21.4,MISRA-CPP-2008-17.0.5" defaultLevel="LEVEL-2">
      <Code>V2512</Code>
      <Name>MISRA. The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-CPP-2008-18.0.5" defaultLevel="LEVEL-2">
      <Code>V2513</Code>
      <Name>MISRA. Unbounded functions performing string operations should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-19.2,MISRA-C-2023-19.2,MISRA-CPP-2008-9.5.1" defaultLevel="LEVEL-3">
      <Code>V2514</Code>
      <Name>MISRA. Unions should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-18.5,MISRA-C-2023-18.5,MISRA-CPP-2008-5.0.19" defaultLevel="LEVEL-3">
      <Code>V2515</Code>
      <Name>MISRA. Declaration should contain no more than two levels of pointer nesting.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.7,MISRA-C-2023-15.7,MISRA-CPP-2008-6.4.2" defaultLevel="LEVEL-2">
      <Code>V2516</Code>
      <Name>MISRA. The 'if' ... 'else if' construct should be terminated with an 'else' statement.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-7.3,MISRA-C-2023-7.3,MISRA-CPP-2008-2.13.4" defaultLevel="LEVEL-2">
      <Code>V2517</Code>
      <Name>MISRA. Literal suffixes should not contain lowercase characters.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.5,MISRA-C-2023-16.5,MISRA-C-2023-16.1" defaultLevel="LEVEL-2">
      <Code>V2518</Code>
      <Name>MISRA. The 'default' label should be either the first or the last label of a 'switch' statement.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.4,MISRA-C-2023-16.4,MISRA-C-2023-16.1" defaultLevel="LEVEL-2">
      <Code>V2519</Code>
      <Name>MISRA. Every 'switch' statement should have a 'default' label, which, in addition to the terminating 'break' statement, should contain either a statement or a comment.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.3,MISRA-C-2023-16.3,MISRA-CPP-2008-6.4.5" defaultLevel="LEVEL-2">
      <Code>V2520</Code>
      <Name>MISRA. Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-8.5.3" defaultLevel="LEVEL-1">
      <Code>V2521</Code>
      <Name>MISRA. Only the first member of enumerator list should be explicitly initialized, unless all members are explicitly initialized.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-6.4.6" defaultLevel="LEVEL-1">
      <Code>V2522</Code>
      <Name>MISRA. The 'switch' statement should have 'default' as the last label.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-7.2,MISRA-C-2023-7.2,MISRA-CPP-2008-2.13.3" defaultLevel="LEVEL-2">
      <Code>V2523</Code>
      <Name>MISRA. All integer constants of unsigned type should have 'u' or 'U' suffix.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.2,MISRA-C-2023-16.2,MISRA-CPP-2008-6.4.4" defaultLevel="LEVEL-2">
      <Code>V2524</Code>
      <Name>MISRA. A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.6,MISRA-C-2023-16.6,MISRA-CPP-2008-6.4.8" defaultLevel="LEVEL-2">
      <Code>V2525</Code>
      <Name>MISRA. Every 'switch' statement should contain non-empty switch-clauses.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-21.10,MISRA-C-2023-21.10,MISRA-CPP-2008-18.0.4" defaultLevel="LEVEL-2">
      <Code>V2526</Code>
      <Name>MISRA. The functions from time.h/ctime should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.7,MISRA-C-2023-16.7,MISRA-CPP-2008-6.4.7" defaultLevel="LEVEL-2">
      <Code>V2527</Code>
      <Name>MISRA. A switch-expression should not have Boolean type. Consider using of 'if-else' construct.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-12.3,MISRA-C-2023-12.3,MISRA-CPP-2008-5.18.1" defaultLevel="LEVEL-3">
      <Code>V2528</Code>
      <Name>MISRA. The comma operator should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.3,MISRA-C-2023-15.3,MISRA-CPP-2008-6.6.1" defaultLevel="LEVEL-2">
      <Code>V2529</Code>
      <Name>MISRA. Any label should be declared in the same block as 'goto' statement or in any block enclosing it.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-15.4,MISRA-C-2023-15.4,MISRA-CPP-2008-6.6.4" defaultLevel="LEVEL-3">
      <Code>V2530</Code>
      <Name>MISRA. Any loop should be terminated with no more than one 'break' or 'goto' statement.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.5,MISRA-C-2023-10.5" defaultLevel="LEVEL-3">
      <Code>V2531</Code>
      <Name>MISRA. Expression of essential type 'foo' should not be explicitly cast to essential type 'bar'.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-7.4,MISRA-C-2023-7.4" defaultLevel="LEVEL-2">
      <Code>V2532</Code>
      <Name>MISRA. String literal should not be assigned to object unless it has type of pointer to const-qualified char.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.2.4" defaultLevel="LEVEL-2">
      <Code>V2533</Code>
      <Name>MISRA. C-style and functional notation casts should not be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-14.1,MISRA-C-2023-14.1,MISRA-CPP-2008-6.5.1" defaultLevel="LEVEL-2">
      <Code>V2534</Code>
      <Name>MISRA. The loop counter should not have floating-point type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-2.1,MISRA-C-2023-2.1,MISRA-CPP-2008-0.1.1" defaultLevel="LEVEL-2">
      <Code>V2535</Code>
      <Name>MISRA. Unreachable code should not be present in the project.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-2.6,MISRA-C-2023-2.6" defaultLevel="LEVEL-3">
      <Code>V2536</Code>
      <Name>MISRA. Function should not contain labels not used by any 'goto' statements.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-2.7,MISRA-C-2023-2.7,MISRA-CPP-2008-0.1.11" defaultLevel="LEVEL-3">
      <Code>V2537</Code>
      <Name>MISRA. Functions should not have unused parameters.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-9.1,MISRA-C-2023-9.1,MISRA-CPP-2008-8.5.1" defaultLevel="LEVEL-1">
      <Code>V2538</Code>
      <Name>MISRA. The value of uninitialized variable should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-15.5.1" defaultLevel="LEVEL-2">
      <Code>V2539</Code>
      <Name>MISRA. Class destructor should not exit with an exception.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-9.3,MISRA-C-2023-9.3" defaultLevel="LEVEL-2">
      <Code>V2540</Code>
      <Name>MISRA. Arrays should not be partially initialized.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.3,MISRA-C-2023-17.3" defaultLevel="LEVEL-1">
      <Code>V2541</Code>
      <Name>MISRA. Function should not be declared implicitly.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.4,MISRA-C-2023-17.4,MISRA-CPP-2008-8.4.3" defaultLevel="LEVEL-1">
      <Code>V2542</Code>
      <Name>MISRA. Function with a non-void return type should return a value from all exit paths.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.2,MISRA-C-2023-10.2" defaultLevel="LEVEL-2">
      <Code>V2543</Code>
      <Name>MISRA. Value of the essential character type should be used appropriately in the addition/subtraction operations.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.1,MISRA-C-2023-10.1" defaultLevel="LEVEL-2">
      <Code>V2544</Code>
      <Name>MISRA. The values used in expressions should have appropriate essential types.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.3,MISRA-C-2023-11.3" defaultLevel="LEVEL-2">
      <Code>V2545</Code>
      <Name>MISRA. Conversion between pointers of different object types should not be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.7,MISRA-C-2023-20.7,MISRA-CPP-2008-16.0.6" defaultLevel="LEVEL-2">
      <Code>V2546</Code>
      <Name>MISRA. Expression resulting from the macro expansion should be surrounded by parentheses.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.7,MISRA-C-2023-17.7,MISRA-CPP-2008-0.1.7" defaultLevel="LEVEL-2">
      <Code>V2547</Code>
      <Name>MISRA. The return value of non-void function should be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-18.6,MISRA-C-2023-18.6,MISRA-CPP-2008-7.5.2" defaultLevel="LEVEL-2">
      <Code>V2548</Code>
      <Name>MISRA. The address of an object with local scope should not be passed out of its scope.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-22.5,MISRA-C-2023-22.5" defaultLevel="LEVEL-1">
      <Code>V2549</Code>
      <Name>MISRA. Pointer to FILE should not be dereferenced.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-6.2.2" defaultLevel="LEVEL-2">
      <Code>V2550</Code>
      <Name>MISRA. Floating-point values should not be tested for equality or inequality.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-3.4.1" defaultLevel="LEVEL-2">
      <Code>V2551</Code>
      <Name>MISRA. Variable should be declared in a scope that minimizes its visibility.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-7.2.1" defaultLevel="LEVEL-2">
      <Code>V2552</Code>
      <Name>MISRA. Expressions with enum underlying type should have values corresponding to the enumerators of the enumeration.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.3.2" defaultLevel="LEVEL-2">
      <Code>V2553</Code>
      <Name>MISRA. Unary minus operator should not be applied to an expression of the unsigned type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-13.3,MISRA-C-2023-13.3,MISRA-CPP-2008-5.2.10" defaultLevel="LEVEL-3">
      <Code>V2554</Code>
      <Name>MISRA. Expression containing increment (++) or decrement (--) should not have other side effects.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-12.2,MISRA-C-2023-12.2,MISRA-CPP-2008-5.8.1" defaultLevel="LEVEL-2">
      <Code>V2555</Code>
      <Name>MISRA. Incorrect shifting expression.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-22.6,MISRA-C-2023-22.6" defaultLevel="LEVEL-1">
      <Code>V2556</Code>
      <Name>MISRA. Use of a pointer to FILE when the associated stream has already been closed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-13.6,MISRA-C-2023-13.6,MISRA-CPP-2008-5.3.4" defaultLevel="LEVEL-1">
      <Code>V2557</Code>
      <Name>MISRA. Operand of sizeof() operator should not have other side effects.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-7.1.2" defaultLevel="LEVEL-2">
      <Code>V2558</Code>
      <Name>MISRA. A pointer/reference parameter in a function should be declared as pointer/reference to const if the corresponding object was not modified.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.0.17,MISRA-CPP-2008-5.0.18" defaultLevel="LEVEL-2">
      <Code>V2559</Code>
      <Name>MISRA. Subtraction, &gt;, &gt;=, &lt;, &lt;= should be applied only to pointers that address elements of the same array.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-8.4.1" defaultLevel="LEVEL-2">
      <Code>V2560</Code>
      <Name>MISRA. There should be no user-defined variadic functions.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-13.4,MISRA-C-2023-13.4,MISRA-CPP-2008-6.2.1" defaultLevel="LEVEL-3">
      <Code>V2561</Code>
      <Name>MISRA. The result of an assignment expression should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-18.4,MISRA-C-2023-18.4,MISRA-CPP-2008-5.0.15" defaultLevel="LEVEL-3">
      <Code>V2562</Code>
      <Name>MISRA. Expressions with pointer type should not be used in the '+', '-', '+=' and '-=' operations.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.0.15" defaultLevel="LEVEL-1">
      <Code>V2563</Code>
      <Name>MISRA. Array indexing should be the only form of pointer arithmetic and it should be applied only to objects defined as an array type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.0.5" defaultLevel="LEVEL-1">
      <Code>V2564</Code>
      <Name>MISRA. There should be no implicit integral-floating conversion.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.2,MISRA-C-2023-17.2,MISRA-CPP-2008-7.5.4" defaultLevel="LEVEL-2">
      <Code>V2565</Code>
      <Name>MISRA. A function should not call itself either directly or indirectly.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-12.4,MISRA-C-2023-12.4,MISRA-CPP-2008-5.19.1" defaultLevel="LEVEL-3">
      <Code>V2566</Code>
      <Name>MISRA. Constant expression evaluation should not result in an unsigned integer wrap-around.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.8,MISRA-C-2023-11.8,MISRA-CPP-2008-5.2.5" defaultLevel="LEVEL-1">
      <Code>V2567</Code>
      <Name>MISRA. Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.4,MISRA-C-2023-10.4" defaultLevel="LEVEL-2">
      <Code>V2568</Code>
      <Name>MISRA. Both operands of an operator should be of the same type category.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.2.11,MISRA-CPP-2008-5.3.3" defaultLevel="LEVEL-1">
      <Code>V2569</Code>
      <Name>MISRA. The 'operator &amp;&amp;', 'operator ||', 'operator ,' and the unary 'operator &amp;' should not be overloaded.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.3.1" defaultLevel="LEVEL-1">
      <Code>V2570</Code>
      <Name>MISRA. Operands of the logical '&amp;&amp;' or the '||' operators, the '!' operator should have 'bool' type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.4,MISRA-C-2023-11.4,MISRA-C-2012-11.5,MISRA-C-2023-11.5,MISRA-CPP-2008-5.2.8,MISRA-CPP-2008-5.2.9" defaultLevel="LEVEL-3">
      <Code>V2571</Code>
      <Name>MISRA. Conversions between pointers to objects and integer types should not be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.3,MISRA-C-2023-10.3" defaultLevel="LEVEL-2">
      <Code>V2572</Code>
      <Name>MISRA. Value of the expression should not be converted to the different essential type or the narrower essential type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-21.1,MISRA-C-2023-21.1,MISRA-C-2012-21.2,MISRA-C-2023-21.2,MISRA-CPP-2008-17.0.1" defaultLevel="LEVEL-2">
      <Code>V2573</Code>
      <Name>MISRA. Identifiers that start with '__' or '_[A-Z]' are reserved.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-3.1.2" defaultLevel="LEVEL-1">
      <Code>V2574</Code>
      <Name>MISRA. Functions should not be declared at block scope.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-7.3.1" defaultLevel="LEVEL-1">
      <Code>V2575</Code>
      <Name>MISRA. The global namespace should only contain 'main', namespace declarations and 'extern "C"' declarations.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-7.3.2" defaultLevel="LEVEL-1">
      <Code>V2576</Code>
      <Name>MISRA. The identifier 'main' should not be used for a function other than the global function 'main'.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.5,MISRA-C-2023-17.5" defaultLevel="LEVEL-3">
      <Code>V2577</Code>
      <Name>MISRA. The function argument corresponding to a parameter declared to have an array type should have an appropriate number of elements.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.2.12" defaultLevel="LEVEL-1">
      <Code>V2578</Code>
      <Name>MISRA. An identifier with array type passed as a function argument should not decay to a pointer.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.4,MISRA-C-2023-20.4" defaultLevel="LEVEL-2">
      <Code>V2579</Code>
      <Name>MISRA. Macro should not be defined with the same name as a keyword.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.14,MISRA-C-2023-8.14" defaultLevel="LEVEL-2">
      <Code>V2580</Code>
      <Name>MISRA. The 'restrict' specifier should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-3.2,MISRA-C-2023-3.2" defaultLevel="LEVEL-2">
      <Code>V2581</Code>
      <Name>MISRA. Single-line comments should not end with a continuation token.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-22.2,MISRA-C-2023-22.2" defaultLevel="LEVEL-1">
      <Code>V2582</Code>
      <Name>MISRA. Block of memory should only be freed if it was allocated by a Standard Library function.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.13,MISRA-C-2023-20.13" defaultLevel="LEVEL-2">
      <Code>V2583</Code>
      <Name>MISRA. Line whose first token is '#' should be a valid preprocessing directive.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-14.4,MISRA-C-2023-14.4" defaultLevel="LEVEL-2">
      <Code>V2584</Code>
      <Name>MISRA. Expression used in condition should have essential Boolean type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.6,MISRA-C-2023-11.6" defaultLevel="LEVEL-2">
      <Code>V2585</Code>
      <Name>MISRA. Casts between a void pointer and an arithmetic type should not be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-18.7,MISRA-C-2023-18.7" defaultLevel="LEVEL-2">
      <Code>V2586</Code>
      <Name>MISRA. Flexible array members should not be declared.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-3.1,MISRA-C-2023-3.1" defaultLevel="LEVEL-2">
      <Code>V2587</Code>
      <Name>MISRA. The '//' and '/*' character sequences should not appear within comments.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-22.1,MISRA-C-2023-22.1" defaultLevel="LEVEL-2">
      <Code>V2588</Code>
      <Name>MISRA. All memory or resources allocated dynamically should be explicitly released.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.7,MISRA-C-2023-11.7" defaultLevel="LEVEL-2">
      <Code>V2589</Code>
      <Name>MISRA. Casts between a pointer and a non-integer arithmetic type should not be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.1,MISRA-C-2023-11.1" defaultLevel="LEVEL-2">
      <Code>V2590</Code>
      <Name>MISRA. Conversions should not be performed between pointer to function and any other type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-6.1,MISRA-C-2023-6.1" defaultLevel="LEVEL-2">
      <Code>V2591</Code>
      <Name>MISRA. Bit fields should only be declared with explicitly signed or unsigned integer type</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.3,MISRA-C-2023-5.3" defaultLevel="LEVEL-2">
      <Code>V2592</Code>
      <Name>MISRA. An identifier declared in an inner scope should not hide an identifier in an outer scope.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-6.2,MISRA-C-2023-6.2" defaultLevel="LEVEL-2">
      <Code>V2593</Code>
      <Name>MISRA. Single-bit bit fields should not be declared as signed type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-14.3,MISRA-C-2023-14.3" defaultLevel="LEVEL-2">
      <Code>V2594</Code>
      <Name>MISRA. Controlling expressions should not be invariant.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-9.5,MISRA-C-2023-9.5" defaultLevel="LEVEL-2">
      <Code>V2595</Code>
      <Name>MISRA. Array size should be specified explicitly when array declaration uses designated initialization.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.6,MISRA-C-2023-10.6" defaultLevel="LEVEL-2">
      <Code>V2596</Code>
      <Name>MISRA. The value of a composite expression should not be assigned to an object with wider essential type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-CPP-2008-5.2.6" defaultLevel="LEVEL-1">
      <Code>V2597</Code>
      <Name>MISRA. Cast should not convert pointer to function to any other pointer type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-18.8,MISRA-C-2023-18.8" defaultLevel="LEVEL-2">
      <Code>V2598</Code>
      <Name>MISRA. Variable length array types are not allowed.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.5,MISRA-C-2023-21.5,MISRA-CPP-2008-18.7.1" defaultLevel="LEVEL-2">
      <Code>V2599</Code>
      <Name>MISRA. The standard signal handling functions should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2012-21.6,MISRA-C-2023-21.6,MISRA-CPP-2008-27.0.1" defaultLevel="LEVEL-2">
      <Code>V2600</Code>
      <Name>MISRA. The standard input/output functions should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.2,MISRA-C-2023-8.2" defaultLevel="LEVEL-2">
      <Code>V2601</Code>
      <Name>MISRA. Functions should be declared in prototype form with named parameters.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-4.1,MISRA-C-2023-4.1" defaultLevel="LEVEL-2">
      <Code>V2602</Code>
      <Name>MISRA. Octal and hexadecimal escape sequences should be terminated.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.6,MISRA-C-2023-17.6" defaultLevel="LEVEL-1">
      <Code>V2603</Code>
      <Name>MISRA. The 'static' keyword shall not be used between [] in the declaration of an array parameter.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-17.1,MISRA-C-2023-17.1" defaultLevel="LEVEL-2">
      <Code>V2604</Code>
      <Name>MISRA. Features from &lt;stdarg.h&gt; should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-21.11,MISRA-C-2023-21.11" defaultLevel="LEVEL-2">
      <Code>V2605</Code>
      <Name>MISRA. Features from &lt;tgmath.h&gt; should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-22.4,MISRA-C-2023-22.4" defaultLevel="LEVEL-1">
      <Code>V2606</Code>
      <Name>MISRA. There should be no attempt to write to a stream that has been opened for reading.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.10,MISRA-C-2023-8.10" defaultLevel="LEVEL-2">
      <Code>V2607</Code>
      <Name>MISRA. Inline functions should be declared with the static storage class.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.8,MISRA-C-2023-8.8,MISRA-CPP-2008-3.3.2" defaultLevel="LEVEL-2">
      <Code>V2608</Code>
      <Name>MISRA. The 'static' storage class specifier should be used in all declarations of object and functions that have internal linkage.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-1.3,MISRA-C-2023-1.3" defaultLevel="LEVEL-2">
      <Code>V2609</Code>
      <Name>MISRA. There should be no occurrence of undefined or critical unspecified behaviour.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.2,MISRA-C-2023-20.2" defaultLevel="LEVEL-2">
      <Code>V2610</Code>
      <Name>MISRA. The ', " or \ characters and the /* or // character sequences should not occur in a header file name.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-11.2,MISRA-C-2023-11.2" defaultLevel="LEVEL-2">
      <Code>V2611</Code>
      <Name>MISRA. Casts between a pointer to an incomplete type and any other type shouldn't be performed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-9.4,MISRA-C-2023-9.4" defaultLevel="LEVEL-2">
      <Code>V2612</Code>
      <Name>MISRA. Array element should not be initialized more than once.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.7,MISRA-C-2023-10.7" defaultLevel="LEVEL-2">
      <Code>V2613</Code>
      <Name>MISRA. Operand that is a composite expression has more narrow essential type than the other operand.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.1,MISRA-C-2023-5.1" defaultLevel="LEVEL-2">
      <Code>V2614</Code>
      <Name>MISRA. External identifiers should be distinct.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.4,MISRA-C-2023-8.4" defaultLevel="LEVEL-2">
      <Code>V2615</Code>
      <Name>MISRA. A compatible declaration should be visible when an object or function with external linkage is defined.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.4,MISRA-C-2023-20.4,MISRA-CPP-2008-16.1.2" defaultLevel="LEVEL-2">
      <Code>V2616</Code>
      <Name>MISRA. All conditional inclusion preprocessor directives should reside in the same file as the conditional inclusion directive to which they are related.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-19.1,MISRA-C-2023-19.1" defaultLevel="LEVEL-1">
      <Code>V2617</Code>
      <Name>MISRA. Object should not be assigned or copied to an overlapping object.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.2,MISRA-C-2023-5.2" defaultLevel="LEVEL-2">
      <Code>V2618</Code>
      <Name>MISRA. Identifiers declared in the same scope and name space should be distinct.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.6,MISRA-C-2023-5.6" defaultLevel="LEVEL-2">
      <Code>V2619</Code>
      <Name>MISRA. Typedef names should be unique across all name spaces.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-10.8,MISRA-C-2023-10.8" defaultLevel="LEVEL-2">
      <Code>V2620</Code>
      <Name>MISRA. Value of a composite expression should not be cast to a different essential type category or a wider essential type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.7,MISRA-C-2023-5.7" defaultLevel="LEVEL-2">
      <Code>V2621</Code>
      <Name>MISRA. Tag names should be unique across all name spaces.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-8.5,MISRA-C-2023-8.5" defaultLevel="LEVEL-2">
      <Code>V2622</Code>
      <Name>MISRA. External object or function should be declared once in one and only one file.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.4,MISRA-C-2023-5.4" defaultLevel="LEVEL-2">
      <Code>V2623</Code>
      <Name>MISRA. Macro identifiers should be distinct.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-9.2,MISRA-C-2023-9.2" defaultLevel="LEVEL-2">
      <Code>V2624</Code>
      <Name>MISRA. The initializer for an aggregate or union should be enclosed in braces.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-5.8,MISRA-C-2023-5.8" defaultLevel="LEVEL-2">
      <Code>V2625</Code>
      <Name>MISRA. Identifiers that define objects or functions with external linkage shall be unique.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-12.5" defaultLevel="LEVEL-1">
      <Code>V2626</Code>
      <Name>MISRA. The 'sizeof' operator should not have an operand which is a function parameter declared as 'array of type'.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-17.13" defaultLevel="LEVEL-2">
      <Code>V2627</Code>
      <Name>MISRA. Function type should not be type qualified.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.15" defaultLevel="LEVEL-2">
      <Code>V2628</Code>
      <Name>MISRA. The pointer arguments to the Standard Library functions memcpy, memmove and memcmp should be pointers to qualified or unqualified versions of compatible types.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.16" defaultLevel="LEVEL-2">
      <Code>V2629</Code>
      <Name>MISRA. Pointer arguments to the 'memcmp' function should point to an appropriate type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-6.3" defaultLevel="LEVEL-2">
      <Code>V2630</Code>
      <Name>MISRA. Bit field should not be declared as a member of a union.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-18.10" defaultLevel="LEVEL-1">
      <Code>V2631</Code>
      <Name>MISRA. Pointers to variably-modified array types should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-18.9" defaultLevel="LEVEL-2">
      <Code>V2632</Code>
      <Name>MISRA. Object with temporary lifetime should not undergo array-to-pointer conversion.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-5.5" defaultLevel="LEVEL-2">
      <Code>V2633</Code>
      <Name>MISRA. Identifiers should be distinct from macro names.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.12,MISRA-C-2012-21.12" defaultLevel="LEVEL-2">
      <Code>V2634</Code>
      <Name>MISRA. Features from &lt;fenv.h&gt; should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2023-21.21,MISRA-C-2012-21.21" defaultLevel="LEVEL-2">
      <Code>V2635</Code>
      <Name>MISRA. The function with the 'system' name should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-676" misra="MISRA-C-2023-21.24,MISRA-C-2012-21.24" defaultLevel="LEVEL-2">
      <Code>V2636</Code>
      <Name>MISRA. The functions with the 'rand' and 'srand' name of &lt;stdlib.h&gt; should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-17.10" defaultLevel="LEVEL-2">
      <Code>V2637</Code>
      <Name>MISRA. A 'noreturn' function should have 'void' return type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-23.4" defaultLevel="LEVEL-2">
      <Code>V2638</Code>
      <Name>MISRA. Generic association should list an appropriate type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-23.8" defaultLevel="LEVEL-2">
      <Code>V2639</Code>
      <Name>MISRA. Default association should appear as either the first or the last association of a generic selection.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-22.13" defaultLevel="LEVEL-2">
      <Code>V2640</Code>
      <Name>MISRA. Thread objects, thread synchronization objects and thread-specific storage pointers should have appropriate storage duration.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-8.1" defaultLevel="LEVEL-2">
      <Code>V2641</Code>
      <Name>MISRA. Types should be explicitly specified.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-11.10" defaultLevel="LEVEL-2">
      <Code>V2642</Code>
      <Name>MISRA. The '_Atomic' specifier should not be applied to the incomplete type 'void'.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.25,MISRA-C-2012-21.25" defaultLevel="LEVEL-2">
      <Code>V2643</Code>
      <Name>MISRA. All memory synchronization operation should be executed in sequentially consistent order.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-23.2" defaultLevel="LEVEL-2">
      <Code>V2644</Code>
      <Name>MISRA. Controlling expression of generic selection must not have side effects.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-1.4" defaultLevel="LEVEL-2">
      <Code>V2645</Code>
      <Name>MISRA. The language features specified in Annex K should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.23" defaultLevel="LEVEL-2">
      <Code>V2646</Code>
      <Name>MISRA. All arguments of any multi-argument type-generic macros from &lt;tgmath.h&gt; should have the same type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-12.6" defaultLevel="LEVEL-2">
      <Code>V2647</Code>
      <Name>MISRA. Structure and union members of atomic objects should not be directly accessed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-11.9" defaultLevel="LEVEL-2">
      <Code>V2648</Code>
      <Name>MISRA. Null pointer constant must be derived by expansion of the NULL macro provided by the implementation.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.22" defaultLevel="LEVEL-2">
      <Code>V2649</Code>
      <Name>MISRA. All arguments of any type-generic macros from &lt;tgmath.h&gt; should have an appropriate essential type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-23.6" defaultLevel="LEVEL-2">
      <Code>V2650</Code>
      <Name>MISRA. Controlling expression of generic selection should have essential type that matches its standard type</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-9.6" defaultLevel="LEVEL-2">
      <Code>V2651</Code>
      <Name>MISRA. Initializer using chained designators should not contain initializers without designators.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-7.5" defaultLevel="LEVEL-1">
      <Code>V2652</Code>
      <Name>MISRA. Argument of an integer constant macro should have an appropriate form.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-7.6" defaultLevel="LEVEL-2">
      <Code>V2653</Code>
      <Name>MISRA. The small integer variants of the minimum-width integer constant macros should not be used.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-13.1" defaultLevel="LEVEL-2">
      <Code>V2654</Code>
      <Name>MISRA. Initializer list should not contain persistent side effects.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-13.5" defaultLevel="LEVEL-2">
      <Code>V2655</Code>
      <Name>MISRA. The right operand of a logical '&amp;&amp;' or '||' operator should not contain persistent side effects.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.14" defaultLevel="LEVEL-2">
      <Code>V2656</Code>
      <Name>MISRA. Standard Library function 'memcmp' should not be used to compare null-terminated strings.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-1.5" defaultLevel="LEVEL-2">
      <Code>V2657</Code>
      <Name>MISRA. Obsolescent language features should not be used.</Name>
    </Rule>
    <Rule group="misra" cwe="CWE-561" misra="MISRA-C-2023-2.2" defaultLevel="LEVEL-2">
      <Code>V2658</Code>
      <Name>MISRA. Dead code should not be used in a project.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-16.1,MISRA-C-2023-16.1" defaultLevel="LEVEL-1">
      <Code>V2659</Code>
      <Name>MISRA. Switch statements should be well-formed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2011-16.1,MISRA-C-2023-16.1" defaultLevel="LEVEL-1">
      <Code>V2660</Code>
      <Name>MISRA. A function declared with a _Noreturn specifier should not return to its caller.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-14.2" defaultLevel="LEVEL-1">
      <Code>V2661</Code>
      <Name>MISRA. A 'for' loop should be well-formed.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.13" defaultLevel="LEVEL-1">
      <Code>V2662</Code>
      <Name>MISRA. Any value passed to a function from &lt;ctype.h&gt; should be representable as an unsigned character or be the value EOF.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-22.7" defaultLevel="LEVEL-2">
      <Code>V2663</Code>
      <Name>MISRA. The macro EOF should only be compared with the unmodified return value of any Standard Library function capable of returning EOF.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.17" defaultLevel="LEVEL-1">
      <Code>V2664</Code>
      <Name>MISRA. Use of the string handling functions from &lt;string.h&gt; should not result in accesses beyond the bounds of the objects referenced by their pointer parameters.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.18" defaultLevel="LEVEL-1">
      <Code>V2665</Code>
      <Name>MISRA. The size argument passed to function from &lt;string.h&gt; should have an appropriate value.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-8.15" defaultLevel="LEVEL-2">
      <Code>V2666</Code>
      <Name>MISRA. All declarations of an object with an explicit alignment specification should specify the same alignment.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-13.2,MISRA-CPP-2008-5.0.1" defaultLevel="LEVEL-2">
      <Code>V2667</Code>
      <Name>MISRA. The value of an expression and its persistent side effects must be the same under all permitted evaluation orders and must be independent from thread interleaving.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.11,MISRA-C-2023-20.11" defaultLevel="LEVEL-2">
      <Code>V2668</Code>
      <Name>MISRA. Macro parameter immediately following by the '#' operator should not immediately be followed by the '##' operator.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2012-20.6,MISRA-C-2023-20.6" defaultLevel="LEVEL-2">
      <Code>V2669</Code>
      <Name>MISRA. Tokens that look like a preprocessing directive should not occur within a macro argument.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-22.12" defaultLevel="LEVEL-1">
      <Code>V2670</Code>
      <Name>MISRA. Thread objects, thread synchronization objects, and thread-specific storage pointers should only be accessed by the appropriate Standard Library functions.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-21.19" defaultLevel="LEVEL-1">
      <Code>V2671</Code>
      <Name>MISRA. Pointers returned by the function 'localeconv' / 'getenv' / 'setlocale' / 'strerror' should be used as if they have pointer to const-qualified type.</Name>
    </Rule>
    <Rule group="misra" misra="MISRA-C-2023-18.2" defaultLevel="LEVEL-2">
      <Code>V2672</Code>
      <Name>MISRA. Subtraction between pointers should only be applied to pointers that address elements of the same array.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M2.13.2" defaultLevel="LEVEL-1">
      <Code>V3501</Code>
      <Name>AUTOSAR. Octal constants should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A3.1.4" defaultLevel="LEVEL-1">
      <Code>V3502</Code>
      <Name>AUTOSAR. Size of an array is not specified.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.6.2" defaultLevel="LEVEL-1">
      <Code>V3503</Code>
      <Name>AUTOSAR. The 'goto' statement shouldn't jump to a label declared earlier.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.3.1,AUTOSAR-M6.4.1" defaultLevel="LEVEL-1">
      <Code>V3504</Code>
      <Name>AUTOSAR. The body of a loop\conditional statement should be enclosed in braces.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A18.0.2" defaultLevel="LEVEL-1">
      <Code>V3505</Code>
      <Name>AUTOSAR. The function with the 'atof/atoi/atol/atoll' name should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M18.0.3" defaultLevel="LEVEL-1">
      <Code>V3506</Code>
      <Name>AUTOSAR. The function with the 'abort/exit/getenv/system' name should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M17.0.5" defaultLevel="LEVEL-1">
      <Code>V3507</Code>
      <Name>AUTOSAR. The macro with the 'setjmp' name and the function with the 'longjmp' name should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M18.0.5" defaultLevel="LEVEL-1">
      <Code>V3508</Code>
      <Name>AUTOSAR. Unbounded functions performing string operations should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M9.5.1" defaultLevel="LEVEL-1">
      <Code>V3509</Code>
      <Name>AUTOSAR. Unions should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A5.0.3" defaultLevel="LEVEL-1">
      <Code>V3510</Code>
      <Name>AUTOSAR. Declaration should contain no more than two levels of pointer nesting.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.4.2" defaultLevel="LEVEL-1">
      <Code>V3511</Code>
      <Name>AUTOSAR. The 'if' ... 'else if' construct should be terminated with an 'else' statement.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M2.13.4" defaultLevel="LEVEL-1">
      <Code>V3512</Code>
      <Name>AUTOSAR. Literal suffixes should not contain lowercase characters.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.4.5" defaultLevel="LEVEL-1">
      <Code>V3513</Code>
      <Name>AUTOSAR. Every switch-clause should be terminated by an unconditional 'break' or 'throw' statement.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.4.6" defaultLevel="LEVEL-1">
      <Code>V3514</Code>
      <Name>AUTOSAR. The 'switch' statement should have 'default' as the last label.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M2.13.3" defaultLevel="LEVEL-1">
      <Code>V3515</Code>
      <Name>AUTOSAR. All integer constants of unsigned type should have 'U' suffix.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.4.4" defaultLevel="LEVEL-1">
      <Code>V3516</Code>
      <Name>AUTOSAR. A switch-label should only appear at the top level of the compound statement forming the body of a 'switch' statement.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M18.0.4" defaultLevel="LEVEL-1">
      <Code>V3517</Code>
      <Name>AUTOSAR. The functions from time.h/ctime should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.4.7" defaultLevel="LEVEL-1">
      <Code>V3518</Code>
      <Name>AUTOSAR. A switch-expression should not have Boolean type. Consider using of 'if-else' construct.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.18.1" defaultLevel="LEVEL-1">
      <Code>V3519</Code>
      <Name>AUTOSAR. The comma operator should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.6.1" defaultLevel="LEVEL-1">
      <Code>V3520</Code>
      <Name>AUTOSAR. Any label should be declared in the same block as 'goto' statement or in any block enclosing it.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A6.5.2" defaultLevel="LEVEL-1">
      <Code>V3521</Code>
      <Name>AUTOSAR. The loop counter should not have floating-point type.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M0.1.1" defaultLevel="LEVEL-1">
      <Code>V3522</Code>
      <Name>AUTOSAR. Unreachable code should not be present in the project.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M0.1.11" defaultLevel="LEVEL-1">
      <Code>V3523</Code>
      <Name>AUTOSAR. Functions should not have unused parameters.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M8.5.1" defaultLevel="LEVEL-1">
      <Code>V3524</Code>
      <Name>AUTOSAR. The value of uninitialized variable should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A8.4.2" defaultLevel="LEVEL-1">
      <Code>V3525</Code>
      <Name>AUTOSAR. Function with a non-void return type should return a value from all exit paths.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M16.0.6" defaultLevel="LEVEL-1">
      <Code>V3526</Code>
      <Name>AUTOSAR. Expression resulting from the macro expansion should be surrounded by parentheses.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A0.1.2" defaultLevel="LEVEL-1">
      <Code>V3527</Code>
      <Name>AUTOSAR. The return value of non-void function should be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M7.5.2" defaultLevel="LEVEL-1">
      <Code>V3528</Code>
      <Name>AUTOSAR. The address of an object with local scope should not be passed out of its scope.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.2.2" defaultLevel="LEVEL-1">
      <Code>V3529</Code>
      <Name>AUTOSAR. Floating-point values should not be tested for equality or inequality.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M3.4.1" defaultLevel="LEVEL-1">
      <Code>V3530</Code>
      <Name>AUTOSAR. Variable should be declared in a scope that minimizes its visibility.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A7.1.2" defaultLevel="LEVEL-1">
      <Code>V3531</Code>
      <Name>AUTOSAR. Expressions with enum underlying type should have values corresponding to the enumerators of the enumeration.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.3.2" defaultLevel="LEVEL-1">
      <Code>V3532</Code>
      <Name>AUTOSAR. Unary minus operator should not be applied to an expression of the unsigned type.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.2.10" defaultLevel="LEVEL-2">
      <Code>V3533</Code>
      <Name>AUTOSAR. Expression containing increment (++) or decrement (--) should not have other side effects.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.8.1" defaultLevel="LEVEL-1">
      <Code>V3534</Code>
      <Name>AUTOSAR. Incorrect shifting expression.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.3.4" defaultLevel="LEVEL-1">
      <Code>V3535</Code>
      <Name>AUTOSAR. Operand of sizeof() operator should not have other side effects.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M7.1.2" defaultLevel="LEVEL-1">
      <Code>V3536</Code>
      <Name>AUTOSAR. A pointer/reference parameter in a function should be declared as pointer/reference to const if the corresponding object was not modified.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.0.17,AUTOSAR-M5.0.18" defaultLevel="LEVEL-1">
      <Code>V3537</Code>
      <Name>AUTOSAR. Subtraction, &gt;, &gt;=, &lt;, &lt;= should be applied only to pointers that address elements of the same array.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M6.2.1" defaultLevel="LEVEL-1">
      <Code>V3538</Code>
      <Name>AUTOSAR. The result of an assignment expression should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.0.15" defaultLevel="LEVEL-1">
      <Code>V3539</Code>
      <Name>AUTOSAR. Array indexing should be the only form of pointer arithmetic and it should be applied only to objects defined as an array type.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.0.5" defaultLevel="LEVEL-1">
      <Code>V3540</Code>
      <Name>AUTOSAR. There should be no implicit integral-floating conversion.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A7.5.1" defaultLevel="LEVEL-1">
      <Code>V3541</Code>
      <Name>AUTOSAR. A function should not call itself either directly or indirectly.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.19.1" defaultLevel="LEVEL-2">
      <Code>V3542</Code>
      <Name>AUTOSAR. Constant expression evaluation should not result in an unsigned integer wrap-around.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A5.2.3" defaultLevel="LEVEL-1">
      <Code>V3543</Code>
      <Name>AUTOSAR. Cast should not remove 'const' / 'volatile' qualification from the type that is pointed to by a pointer or a reference.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.2.11,AUTOSAR-M5.3.3" defaultLevel="LEVEL-1">
      <Code>V3544</Code>
      <Name>AUTOSAR. The 'operator &amp;&amp;', 'operator ||', 'operator ,' and the unary 'operator &amp;' should not be overloaded.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.3.1" defaultLevel="LEVEL-1">
      <Code>V3545</Code>
      <Name>AUTOSAR. Operands of the logical '&amp;&amp;' or the '||' operators, the '!' operator should have 'bool' type.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.2.8,AUTOSAR-M5.2.9" defaultLevel="LEVEL-1">
      <Code>V3546</Code>
      <Name>AUTOSAR. Conversions between pointers to objects and integer types should not be performed.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-A17.0.1" defaultLevel="LEVEL-1">
      <Code>V3547</Code>
      <Name>AUTOSAR. Identifiers that start with '__' or '_[A-Z]' are reserved.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M3.1.2" defaultLevel="LEVEL-1">
      <Code>V3548</Code>
      <Name>AUTOSAR. Functions should not be declared at block scope.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M7.3.1" defaultLevel="LEVEL-1">
      <Code>V3549</Code>
      <Name>AUTOSAR. The global namespace should only contain 'main', namespace declarations and 'extern "C"' declarations.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M7.3.2" defaultLevel="LEVEL-1">
      <Code>V3550</Code>
      <Name>AUTOSAR. The identifier 'main' should not be used for a function other than the global function 'main'.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.2.12" defaultLevel="LEVEL-1">
      <Code>V3551</Code>
      <Name>AUTOSAR. An identifier with array type passed as a function argument should not decay to a pointer.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M5.2.6" defaultLevel="LEVEL-1">
      <Code>V3552</Code>
      <Name>AUTOSAR. Cast should not convert a pointer to a function to any other pointer type, including a pointer to function type.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M18.7.1" defaultLevel="LEVEL-1">
      <Code>V3553</Code>
      <Name>AUTOSAR. The standard signal handling functions should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M27.0.1" defaultLevel="LEVEL-1">
      <Code>V3554</Code>
      <Name>AUTOSAR. The standard input/output functions should not be used.</Name>
    </Rule>
    <Rule group="autosar" autosar="AUTOSAR-M3.3.2" defaultLevel="LEVEL-1">
      <Code>V3555</Code>
      <Name>AUTOSAR. The 'static' storage class specifier should be used in all declarations of functions that have internal linkage.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-841" owasp="OWASP-11.1.1" defaultLevel="LEVEL-1">
      <Code>V5001</Code>
      <Name>OWASP. It is highly probable that the semicolon ';' is missing after 'return' keyword.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1069,CWE-390,CWE-544" cert="ERR56-CPP" owasp="OWASP-7.4.2" defaultLevel="LEVEL-3">
      <Code>V5002</Code>
      <Name>OWASP. An empty exception handler. Silent suppression of exceptions can hide the presence of bugs in source code during testing.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-390" cert="MSC13-C" owasp="OWASP-11.1.8" defaultLevel="LEVEL-1">
      <Code>V5003</Code>
      <Name>OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" cert="INT00-C" owasp="OWASP-5.4.3" defaultLevel="LEVEL-1">
      <Code>V5004</Code>
      <Name>OWASP. Consider inspecting the expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" cert="INT30-C" owasp="OWASP-5.4.3" defaultLevel="LEVEL-3">
      <Code>V5005</Code>
      <Name>OWASP. A value is being subtracted from the unsigned variable. This can result in an overflow. In such a case, the comparison operation can potentially behave unexpectedly.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" cert="INT02-C" owasp="OWASP-5.4.3" defaultLevel="LEVEL-2">
      <Code>V5006</Code>
      <Name>OWASP. More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" owasp="OWASP-5.4.3" defaultLevel="LEVEL-2">
      <Code>V5007</Code>
      <Name>OWASP. Consider inspecting the loop expression. It is possible that the 'i' variable should be incremented instead of the 'n' variable.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-544" owasp="OWASP-7.4.2" defaultLevel="LEVEL-1">
      <Code>V5008</Code>
      <Name>OWASP. Classes should always be derived from std::exception (and alike) as 'public'.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-20,CWE-78,CWE-134" owasp="OWASP-5.1.3,OWASP-5.3.8,OWASP-5.4.2" defaultLevel="LEVEL-1">
      <Code>V5009</Code>
      <Name>OWASP. Unchecked tainted data is used in expression.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" cert="INT32-C" owasp="OWASP-5.4.3" defaultLevel="LEVEL-2">
      <Code>V5010</Code>
      <Name>OWASP. The variable is incremented in the loop. Undefined behavior will occur in case of signed integer overflow.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190" cert="INT30-C" owasp="OWASP-5.4.3" defaultLevel="LEVEL-1">
      <Code>V5011</Code>
      <Name>OWASP. Possible overflow. Consider casting operands, not the result.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-609" owasp="OWASP-11.1.6,OWASP-1.11.3" defaultLevel="LEVEL-3">
      <Code>V5012</Code>
      <Name>OWASP. Potentially unsafe double-checked locking.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-798,CWE-259" owasp="OWASP-2.10.4" defaultLevel="LEVEL-1">
      <Code>V5013</Code>
      <Name>OWASP. Storing credentials inside source code can lead to security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-327" owasp="OWASP-6.2.2" defaultLevel="LEVEL-1">
      <Code>V5014</Code>
      <Name>OWASP. Cryptographic function is deprecated. Its use can lead to security issues. Consider switching to an equivalent newer function.</Name>
    </Rule>
  </RuleSet>
  <RuleSet lang="cs">
    <Rule group="fails">
      <Code>V009</Code>
      <Name>To use free version of PVS-Studio, source code files are required to start with a special comment.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V051</Code>
      <Name>Some of the references in project are missing or incorrect. The analysis results could be incomplete. Consider making the project fully compilable and building it before analysis.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V052</Code>
      <Name>A critical error had occurred.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V3001</Code>
      <Name>There are identical sub-expressions to the left and to the right of the 'foo' operator.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3002</Code>
      <Name>The switch statement does not cover all values of the enum.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" defaultLevel="LEVEL-1">
      <Code>V3003</Code>
      <Name>The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3004</Code>
      <Name>The 'then' statement is equivalent to the 'else' statement.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3005</Code>
      <Name>The 'x' variable is assigned to itself.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-390" defaultLevel="LEVEL-1">
      <Code>V3006</Code>
      <Name>The object was created but it is not being used. The 'throw' keyword could be missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3007</Code>
      <Name>Odd semicolon ';' after 'if/for/while' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-2">
      <Code>V3008</Code>
      <Name>The 'x' variable is assigned values twice successively. Perhaps this is a mistake.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-393" defaultLevel="LEVEL-2">
      <Code>V3009</Code>
      <Name>It's odd that this method always returns one and the same value of NN.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-252" defaultLevel="LEVEL-1">
      <Code>V3010</Code>
      <Name>The return value of function 'Foo' is required to be utilized.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" defaultLevel="LEVEL-1">
      <Code>V3011</Code>
      <Name>Two opposite conditions were encountered. The second condition is always false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-1">
      <Code>V3012</Code>
      <Name>The '?:' operator, regardless of its conditional expression, always returns one and the same value.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3013</Code>
      <Name>It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3014</Code>
      <Name>It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'X'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3015</Code>
      <Name>It is likely that a wrong variable is being compared inside the 'for' operator. Consider reviewing 'X'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3016</Code>
      <Name>The variable 'X' is being used for this loop and for the outer loop.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3017</Code>
      <Name>A pattern was detected: A || (A &amp;&amp; ...). The expression is excessive or contains a logical error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-2">
      <Code>V3018</Code>
      <Name>Consider inspecting the application's logic. It's possible that 'else' keyword is missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-1">
      <Code>V3019</Code>
      <Name>It is possible that an incorrect variable is compared with null after type conversion using 'as' keyword.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3020</Code>
      <Name>An unconditional 'break/continue/return/goto' within a loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" defaultLevel="LEVEL-1">
      <Code>V3021</Code>
      <Name>There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V3022</Code>
      <Name>Expression is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" defaultLevel="LEVEL-1">
      <Code>V3023</Code>
      <Name>Consider inspecting this expression. The expression is excessive or contains a misprint.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V3024</Code>
      <Name>An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) &lt; Epsilon or Math.Abs(A - B) &gt; Epsilon.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-685" defaultLevel="LEVEL-1">
      <Code>V3025</Code>
      <Name>Incorrect format. Consider checking the N format items of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1339" defaultLevel="LEVEL-3">
      <Code>V3026</Code>
      <Name>The constant NN is being utilized. The resulting value could be inaccurate. Consider using the KK constant.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3027</Code>
      <Name>The variable was utilized in the logical expression before it was verified against null in the same logical expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3028</Code>
      <Name>Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3029</Code>
      <Name>The conditional expressions of the 'if' statements situated alongside each other are identical.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" defaultLevel="LEVEL-1">
      <Code>V3030</Code>
      <Name>Recurring check. This condition was already verified in previous line.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3031</Code>
      <Name>An excessive check can be simplified. The operator '||' operator is surrounded by opposite expressions 'x' and '!x'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-1">
      <Code>V3032</Code>
      <Name>Waiting on this expression is unreliable, as compiler may optimize some of the variables. Use volatile variable(s) or synchronization primitives to avoid this.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3033</Code>
      <Name>It is possible that this 'else' branch must apply to the previous 'if' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V3034</Code>
      <Name>Consider inspecting the expression. Probably the '!=' should be used here.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V3035</Code>
      <Name>Consider inspecting the expression. Probably the '+=' should be used here.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V3036</Code>
      <Name>Consider inspecting the expression. Probably the '-=' should be used here.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3037</Code>
      <Name>An odd sequence of assignments of this kind: A = B; B = A;</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-687" defaultLevel="LEVEL-2">
      <Code>V3038</Code>
      <Name>The argument was passed to method several times. It is possible that another argument should be passed instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-39" defaultLevel="LEVEL-3">
      <Code>V3039</Code>
      <Name>Consider inspecting the 'Foo' function call. Defining an absolute path to the file or directory is considered a poor style.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V3040</Code>
      <Name>The expression contains a suspicious mix of integer and real types.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V3041</Code>
      <Name>The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid the loss of a fractional part.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3042</Code>
      <Name>Possible NullReferenceException. The '?.' and '.' operators are used for accessing members of the same object.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" defaultLevel="LEVEL-1">
      <Code>V3043</Code>
      <Name>The code's operational logic does not correspond with its formatting.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3044</Code>
      <Name>WPF: writing and reading are performed on a different Dependency Properties.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3045</Code>
      <Name>WPF: the names of the property registered for DependencyProperty, and of the property used to access it, do not correspond with each other.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3046</Code>
      <Name>WPF: the type registered for DependencyProperty does not correspond with the type of the property used to access it.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3047</Code>
      <Name>WPF: A class containing registered property does not correspond with a type that is passed as the ownerType.type.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3048</Code>
      <Name>WPF: several Dependency Properties are registered with a same name within the owner type.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3049</Code>
      <Name>WPF: readonly field of 'DependencyProperty' type is not initialized.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3050</Code>
      <Name>Possibly an incorrect HTML. The &lt;/XX&gt; closing tag was encountered, while the &lt;/YY&gt; tag was expected.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-2">
      <Code>V3051</Code>
      <Name>An excessive type cast or check. The object is already of the same type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-390" defaultLevel="LEVEL-2">
      <Code>V3052</Code>
      <Name>The original exception object was swallowed. Stack of original exception could be lost.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3053</Code>
      <Name>An excessive expression. Examine the substrings "abc" and "abcd".</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-609" defaultLevel="LEVEL-2">
      <Code>V3054</Code>
      <Name>Potentially unsafe double-checked locking. Use volatile variable(s) or synchronization primitives to avoid this.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-481" defaultLevel="LEVEL-3">
      <Code>V3055</Code>
      <Name>Suspicious assignment inside the condition expression of 'if/while/for' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V3056</Code>
      <Name>Consider reviewing the correctness of 'X' item's usage.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-2">
      <Code>V3057</Code>
      <Name>Function receives an odd argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-462" defaultLevel="LEVEL-1">
      <Code>V3058</Code>
      <Name>An item with the same key has already been added.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3059</Code>
      <Name>Consider adding '[Flags]' attribute to the enum.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V3060</Code>
      <Name>A value of variable is not modified. Consider inspecting the expression. It is possible that other value should be present instead of '0'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3061</Code>
      <Name>Parameter 'A' is always rewritten in method body before being used.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3062</Code>
      <Name>An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-2">
      <Code>V3063</Code>
      <Name>A part of conditional expression is always true/false if it is evaluated.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-369" defaultLevel="LEVEL-1">
      <Code>V3064</Code>
      <Name>Division or mod division by zero.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3065</Code>
      <Name>Parameter is not utilized inside method's body.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-683" defaultLevel="LEVEL-2">
      <Code>V3066</Code>
      <Name>Possible incorrect order of arguments passed to method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V3067</Code>
      <Name>It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3068</Code>
      <Name>Calling overrideable class member from constructor is dangerous.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3069</Code>
      <Name>It's possible that the line was commented out improperly, thus altering the program's operation logics.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" defaultLevel="LEVEL-1">
      <Code>V3070</Code>
      <Name>Uninitialized variables are used when initializing the 'A' variable.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3071</Code>
      <Name>The object is returned from inside 'using' block. 'Dispose' will be invoked before exiting method.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-0">
      <Code>V3072</Code>
      <Name>The 'A' class containing IDisposable members does not itself implement IDisposable.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-0">
      <Code>V3073</Code>
      <Name>Not all IDisposable members are properly disposed. Call 'Dispose' when disposing 'A' class.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3074</Code>
      <Name>The 'A' class contains 'Dispose' method. Consider making it implement 'IDisposable' interface.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3075</Code>
      <Name>The operation is executed 2 or more times in succession.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V3076</Code>
      <Name>Comparison with 'double.NaN' is meaningless. Use 'double.IsNaN()' method instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3077</Code>
      <Name>Property setter / event accessor does not utilize its 'value' parameter.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3078</Code>
      <Name>Sorting keys priority will be reversed relative to the order of 'OrderBy' method calls. Perhaps, 'ThenBy' should be used instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-2">
      <Code>V3079</Code>
      <Name>The 'ThreadStatic' attribute is applied to a non-static 'A' field and will be ignored.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3080</Code>
      <Name>Possible null dereference.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3081</Code>
      <Name>The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-2">
      <Code>V3082</Code>
      <Name>The 'Thread' object is created but is not started. It is possible that a call to 'Start' method is missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-367" defaultLevel="LEVEL-2">
      <Code>V3083</Code>
      <Name>Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3084</Code>
      <Name>Anonymous function is used to unsubscribe from event. No handlers will be unsubscribed, as a separate delegate instance is created for each anonymous function declaration.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3085</Code>
      <Name>The name of 'X' field/property in a nested type is ambiguous. The outer type contains static field/property with identical name.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3086</Code>
      <Name>Variables are initialized through the call to the same function. It's probably an error or un-optimized code.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3087</Code>
      <Name>Type of variable enumerated in 'foreach' is not guaranteed to be castable to the type of collection's elements.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3088</Code>
      <Name>The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V3089</Code>
      <Name>Initializer of a field marked by [ThreadStatic] attribute will be called once on the first accessing thread. The field will have default value on different threads.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-833,CWE-662" defaultLevel="LEVEL-2">
      <Code>V3090</Code>
      <Name>Unsafe locking on an object.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3091</Code>
      <Name>Empirical analysis. It is possible that a typo is present inside the string literal. The 'foo' word is suspicious.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3092</Code>
      <Name>Range intersections are possible within conditional expressions.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V3093</Code>
      <Name>The operator evaluates both operands. Perhaps a short-circuit operator should be used instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3094</Code>
      <Name>Possible exception when deserializing type. The Ctor(SerializationInfo, StreamingContext) constructor is missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3095</Code>
      <Name>The object was used before it was verified against null. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3096</Code>
      <Name>Possible exception when serializing type. [Serializable] attribute is missing.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3097</Code>
      <Name>Possible exception: type marked by [Serializable] contains non-serializable members not marked by [NonSerialized].</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3098</Code>
      <Name>The 'continue' operator will terminate 'do { ... } while (false)' loop because the condition is always false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-684" defaultLevel="LEVEL-1">
      <Code>V3099</Code>
      <Name>Not all the members of type are serialized inside 'GetObjectData' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-3">
      <Code>V3100</Code>
      <Name>NullReferenceException is possible. Unhandled exceptions in destructor lead to termination of runtime.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3101</Code>
      <Name>Potential resurrection of 'this' object instance from destructor. Without re-registering for finalization, destructor will not be called a second time on resurrected object.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3102</Code>
      <Name>Suspicious access to element by a constant index inside a loop.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3103</Code>
      <Name>A private Ctor(SerializationInfo, StreamingContext) constructor in unsealed type will not be accessible when deserializing derived types.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3104</Code>
      <Name>The 'GetObjectData' implementation in unsealed type is not virtual, incorrect serialization of derived type is possible.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-690" defaultLevel="LEVEL-1">
      <Code>V3105</Code>
      <Name>The 'a' variable was used after it was assigned through null-conditional operator. NullReferenceException is possible.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-787,CWE-125" defaultLevel="LEVEL-1">
      <Code>V3106</Code>
      <Name>Possibly index is out of bound.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3107</Code>
      <Name>Identical expression to the left and to the right of compound assignment.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-684" defaultLevel="LEVEL-3">
      <Code>V3108</Code>
      <Name>It is not recommended to return null or throw exceptions from 'ToString()' method.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3109</Code>
      <Name>The same sub-expression is present on both sides of the operator. The expression is incorrect or it can be simplified.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-674" defaultLevel="LEVEL-1">
      <Code>V3110</Code>
      <Name>Possible infinite recursion.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3111</Code>
      <Name>Checking value for null will always return false when generic type is instantiated with a value type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-2">
      <Code>V3112</Code>
      <Name>An abnormality within similar comparisons. It is possible that a typo is present inside the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" defaultLevel="LEVEL-2">
      <Code>V3113</Code>
      <Name>Consider inspecting the loop expression. It is possible that different variables are used inside initializer and iterator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-2">
      <Code>V3114</Code>
      <Name>IDisposable object is not disposed before method returns.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-684" defaultLevel="LEVEL-2">
      <Code>V3115</Code>
      <Name>It is not recommended to throw exceptions from 'Equals(object obj)' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-2">
      <Code>V3116</Code>
      <Name>Consider inspecting the 'for' operator. It's possible that the loop will be executed incorrectly or won't be executed at all.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3117</Code>
      <Name>Constructor parameter is not used.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3118</Code>
      <Name>A component of TimeSpan is used, which does not represent full time interval. Possibly 'Total*' value was intended instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3119</Code>
      <Name>Calling a virtual (overridden) event may lead to unpredictable behavior. Consider implementing event accessors explicitly or use 'sealed' keyword.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-835" defaultLevel="LEVEL-1">
      <Code>V3120</Code>
      <Name>Potentially infinite loop. The variable from the loop exit condition does not change its value between iterations.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3121</Code>
      <Name>An enumeration was declared with 'Flags' attribute, but does not set any initializers to override default values.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" defaultLevel="LEVEL-1">
      <Code>V3122</Code>
      <Name>Uppercase (lowercase) string is compared with a different lowercase (uppercase) string.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-1">
      <Code>V3123</Code>
      <Name>Perhaps the '??' operator works in a different way than it was expected. Its priority is lower than priority of other operators in its left part.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3124</Code>
      <Name>Appending an element and checking for key uniqueness is performed on two different variables.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-2">
      <Code>V3125</Code>
      <Name>The object was used after it was verified against null. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3126</Code>
      <Name>Type implementing IEquatable&lt;T&gt; interface does not override 'GetHashCode' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V3127</Code>
      <Name>Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V3128</Code>
      <Name>The field (property) is used before it is initialized in constructor.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3129</Code>
      <Name>The value of the captured variable will be overwritten on the next iteration of the loop in each instance of anonymous function that captures it.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3130</Code>
      <Name>Priority of the '&amp;&amp;' operator is higher than that of the '||' operator. Possible missing parentheses.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-1">
      <Code>V3131</Code>
      <Name>The expression is checked for compatibility with the type 'A', but is casted to the 'B' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-2">
      <Code>V3132</Code>
      <Name>A terminal null is present inside a string. The '\0xNN' characters were encountered. Probably meant: '\xNN'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V3133</Code>
      <Name>Postfix increment/decrement is senseless because this variable is overwritten.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-128" defaultLevel="LEVEL-2">
      <Code>V3134</Code>
      <Name>Shift by N bits is greater than the size of type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-3">
      <Code>V3135</Code>
      <Name>The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-2">
      <Code>V3136</Code>
      <Name>Constant expression in switch statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-2">
      <Code>V3137</Code>
      <Name>The variable is assigned but is not used by the end of the function.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3138</Code>
      <Name>String literal contains potential interpolated expression.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3139</Code>
      <Name>Two or more case-branches perform the same actions.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3140</Code>
      <Name>Property accessors use different backing fields.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3141</Code>
      <Name>Expression under 'throw' is a potential null, which can lead to NullReferenceException.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" defaultLevel="LEVEL-2">
      <Code>V3142</Code>
      <Name>Unreachable code detected. It is possible that an error is present.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3143</Code>
      <Name>The 'value' parameter is rewritten inside a property setter, and is not used after that.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3144</Code>
      <Name>This file is marked with copyleft license, which requires you to open the derived source code.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-2">
      <Code>V3145</Code>
      <Name>Unsafe dereference of a WeakReference target. The object could have been garbage collected before the 'Target' property was accessed.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-2">
      <Code>V3146</Code>
      <Name>Possible null dereference. A method can return default null value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-567" defaultLevel="LEVEL-2">
      <Code>V3147</Code>
      <Name>Non-atomic modification of volatile variable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-2">
      <Code>V3148</Code>
      <Name>Casting potential 'null' value to a value type can lead to NullReferenceException.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-3">
      <Code>V3149</Code>
      <Name>Dereferencing the result of 'as' operator can lead to NullReferenceException.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3150</Code>
      <Name>Loop break conditions do not depend on the number of iterations.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-369" defaultLevel="LEVEL-2">
      <Code>V3151</Code>
      <Name>Potential division by zero. Variable was used as a divisor before it was compared to zero. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-369" defaultLevel="LEVEL-2">
      <Code>V3152</Code>
      <Name>Potential division by zero. Variable was compared to zero before it was used as a divisor. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3153</Code>
      <Name>Dereferencing the result of null-conditional access operator can lead to NullReferenceException.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V3154</Code>
      <Name>The 'a % b' expression always evaluates to 0.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V3155</Code>
      <Name>The expression is incorrect or it can be simplified.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-2">
      <Code>V3156</Code>
      <Name>The argument of the method is not expected to be null.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V3157</Code>
      <Name>Suspicious division. Absolute value of the left operand is less than the right operand.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V3158</Code>
      <Name>Suspicious division. Absolute values of both operands are equal.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-2">
      <Code>V3159</Code>
      <Name>Modified value of the operand is not used after the increment/decrement operation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" defaultLevel="LEVEL-1">
      <Code>V3160</Code>
      <Name>Argument of incorrect type is passed to the 'Enum.HasFlag' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" defaultLevel="LEVEL-1">
      <Code>V3161</Code>
      <Name>Comparing value type variables with 'ReferenceEquals' is incorrect because compared values will be boxed.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3162</Code>
      <Name>Suspicious return of an always empty collection.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1069,CWE-390,CWE-544" defaultLevel="LEVEL-3">
      <Code>V3163</Code>
      <Name>An exception handling block does not contain any code.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-544" defaultLevel="LEVEL-3">
      <Code>V3164</Code>
      <Name>Exception classes should be publicly accessible.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-2">
      <Code>V3165</Code>
      <Name>The expression of the 'char' type is passed as an argument of the 'A' type whereas similar overload with the string parameter exists.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-2">
      <Code>V3166</Code>
      <Name>Calling the 'SingleOrDefault' method may lead to 'InvalidOperationException'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-3">
      <Code>V3167</Code>
      <Name>Parameter of 'CancellationToken' type is not used inside function's body.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3168</Code>
      <Name>Awaiting on expression with potential null value can lead to throwing of 'NullReferenceException'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3169</Code>
      <Name>Suspicious return of a local reference variable which always equals null.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3170</Code>
      <Name>Both operands of the '??' operator are identical.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-839" defaultLevel="LEVEL-2">
      <Code>V3171</Code>
      <Name>Potentially negative value is used as the size of an array.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" defaultLevel="LEVEL-1">
      <Code>V3172</Code>
      <Name>The 'if/if-else/for/while/foreach' statement and code block after it are not related. Inspect the program's logic.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3173</Code>
      <Name>Possible incorrect initialization of variable. Consider verifying the initializer.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3174</Code>
      <Name>Suspicious subexpression in a sequence of similar comparisons.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-667" defaultLevel="LEVEL-1">
      <Code>V3175</Code>
      <Name>Locking operations must be performed on the same thread. Using 'await' in a critical section may lead to a lock being released on a different thread.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-2">
      <Code>V3176</Code>
      <Name>The '&amp;=' or '|=' operator is redundant because the right operand is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-1">
      <Code>V3177</Code>
      <Name>Logical literal belongs to second operator with a higher priority. It is possible literal was intended to belong to '??' operator instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-672" defaultLevel="LEVEL-1">
      <Code>V3178</Code>
      <Name>Calling method or accessing property of potentially disposed object may result in exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-1">
      <Code>V3179</Code>
      <Name>Calling element access method for potentially empty collection may result in exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-687" defaultLevel="LEVEL-1">
      <Code>V3180</Code>
      <Name>The 'HasFlag' method always returns 'true' because the value '0' is passed as its argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V3181</Code>
      <Name>The result of '&amp;' operator is '0' because one of the operands is '0'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1">
      <Code>V3182</Code>
      <Name>The result of '&amp;' operator is always '0'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-2">
      <Code>V3183</Code>
      <Name>Code formatting implies that the statement should not be a part of the 'then' branch that belongs to the preceding 'if' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-687" defaultLevel="LEVEL-1">
      <Code>V3184</Code>
      <Name>The argument's value is greater than the size of the collection. Passing the value into the 'Foo' method will result in an exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-1">
      <Code>V3185</Code>
      <Name>An argument containing a file path could be mixed up with another argument. The other function parameter expects a file path instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-687" defaultLevel="LEVEL-1">
      <Code>V3186</Code>
      <Name>The arguments violate the bounds of collection. Passing these values into the method will result in an exception.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3187</Code>
      <Name>Parts of an SQL query are not delimited by any separators or whitespaces. Executing this query may lead to an error.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3188</Code>
      <Name>Unity Engine. The value of an expression is a potentially destroyed Unity object or null. Member invocation on this value may lead to an exception.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3189</Code>
      <Name>The assignment to a member of the readonly field will have no effect when the field is of a value type. Consider restricting the type parameter to reference types.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-1">
      <Code>V3190</Code>
      <Name>Concurrent modification of a variable may lead to errors.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3191</Code>
      <Name>Iteration through collection makes no sense because it is always empty.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-2">
      <Code>V3192</Code>
      <Name>Type member is used in the 'GetHashCode' method but is missing from the 'Equals' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-366" defaultLevel="LEVEL-1">
      <Code>V3193</Code>
      <Name>Data processing results are potentially used before asynchronous output reading is complete. Consider calling 'WaitForExit' overload with no arguments before using the data.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-1">
      <Code>V3194</Code>
      <Name>Calling 'OfType' for collection will return an empty collection. It is not possible to cast collection elements to the type parameter.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V3195</Code>
      <Name>Collection initializer implicitly calls 'Add' method. Using it on member with default value of null will result in null dereference exception.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3196</Code>
      <Name>Parameter is not utilized inside the method body, but an identifier with a similar name is used inside the same method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-2">
      <Code>V3197</Code>
      <Name>The compared value inside the 'Object.Equals' override is converted to a different type that does not contain the override.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1164" defaultLevel="LEVEL-3">
      <Code>V3198</Code>
      <Name>The variable is assigned the same value that it already holds.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-787,CWE-125" defaultLevel="LEVEL-1">
      <Code>V3199</Code>
      <Name>The index from end operator is used with the value that is less than or equal to zero. Collection index will be out of bounds.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" defaultLevel="LEVEL-2">
      <Code>V3200</Code>
      <Name>Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3201</Code>
      <Name>Return value is not always used. Consider inspecting the 'foo' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" defaultLevel="LEVEL-2">
      <Code>V3202</Code>
      <Name>Unreachable code detected. The 'case' value is out of the range of the match expression.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3203</Code>
      <Name>Method parameter is not used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-192" defaultLevel="LEVEL-1">
      <Code>V3204</Code>
      <Name>The expression is always false due to implicit type conversion. Overflow check is incorrect.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3205</Code>
      <Name>Unity Engine. Improper creation of 'MonoBehaviour' or 'ScriptableObject' object using the 'new' operator. Use the special object creation method instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3206</Code>
      <Name>Unity Engine. A direct call to the coroutine-like method will not start it. Use the 'StartCoroutine' method instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V3207</Code>
      <Name>The 'not A or B' logical pattern may not work as expected. The 'not' pattern is matched only to the first expression from the 'or' pattern.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" defaultLevel="LEVEL-1">
      <Code>V3208</Code>
      <Name>Unity Engine. Using 'WeakReference' with 'UnityEngine.Object' is not supported. GC will not reclaim the object's memory because it is linked to a native object.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V3209</Code>
      <Name>Unity Engine. Using await on 'Awaitable' object more than once can lead to exception or deadlock, as such objects are returned to the pool after being awaited.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686" defaultLevel="LEVEL-1">
      <Code>V3210</Code>
      <Name>Unity Engine. Unity does not allow removing the 'Transform' component using 'Destroy' or 'DestroyImmediate' methods. The method call will be ignored.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3211</Code>
      <Name>Unity Engine. The operators '?.', '??' and '??=' do not correctly handle destroyed objects derived from 'UnityEngine.Object'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3212</Code>
      <Name>Unity Engine. Pattern matching does not correctly handle destroyed objects derived from 'UnityEngine.Object'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-1">
      <Code>V3213</Code>
      <Name>Unity Engine. The 'GetComponent' method must be instantiated with a type that inherits from 'UnityEngine.Component'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-2">
      <Code>V3214</Code>
      <Name>Unity Engine. Using Unity API in the background thread may result in an error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1106" defaultLevel="LEVEL-3">
      <Code>V3215</Code>
      <Name>Unity Engine. Passing a method name as a string literal into the 'StartCoroutine' is unreliable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-754" defaultLevel="LEVEL-2">
      <Code>V3216</Code>
      <Name>Unity Engine. Checking a field with a specific Unity Engine type for null may not work correctly due to implicit field initialization by the engine.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190,CWE-191" defaultLevel="LEVEL-1">
      <Code>V3217</Code>
      <Name>Possible overflow as a result of an arithmetic operation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-193" defaultLevel="LEVEL-1">
      <Code>V3218</Code>
      <Name>Loop condition may be incorrect due to an off-by-one error.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3219</Code>
      <Name>The variable was changed after it was captured in a LINQ method with deferred execution. The original value will not be used when the method is executed.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-1">
      <Code>V3220</Code>
      <Name>The result of the LINQ method with deferred execution is never used. The method will not be executed.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V3221</Code>
      <Name>Modifying a collection during its enumeration will lead to an exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-772" defaultLevel="LEVEL-3">
      <Code>V3222</Code>
      <Name>Potential resource leak. An inner IDisposable object might remain non-disposed if the constructor of the outer object throws an exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-2">
      <Code>V3223</Code>
      <Name>Inconsistent use of a potentially shared variable with and without a lock can lead to a data race.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-685" defaultLevel="LEVEL-2">
      <Code>V3224</Code>
      <Name>Consider using an overload with 'IEqualityComparer', as it is present in similar cases for the same collection element type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" defaultLevel="LEVEL-1">
      <Code>V3225</Code>
      <Name>A data reading method returns the number of bytes that were read and cannot return the value of -1.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-3">
      <Code>V3226</Code>
      <Name>Potential resource leak. The disposing method will not be called if an exception occurs in the 'try' block. Consider calling it in the 'finally' block.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-3">
      <Code>V3227</Code>
      <Name>The precedence of the arithmetic operator is higher than that of the shift operator. Consider using parentheses in the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-2">
      <Code>V3228</Code>
      <Name>It is possible that an assigned variable should be used in the next condition. Consider checking for misprints.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V3229</Code>
      <Name>The 'GetHashCode' method may return different hash codes for equal objects. It uses an object reference to generate a hash for a variable. Check the implementation of the 'Equals' method.</Name>
    </Rule>
    <Rule group="op" cwe="CWE-1235" defaultLevel="LEVEL-3">
      <Code>V4001</Code>
      <Name>Unity Engine. Boxing inside a frequently called method may decrease performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4002</Code>
      <Name>Unity Engine. Avoid storing consecutive concatenations inside a single string in performance-sensitive context. Consider using StringBuilder to improve performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4003</Code>
      <Name>Unity Engine. Avoid capturing variable in performance-sensitive context. This can lead to decreased performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4004</Code>
      <Name>Unity Engine. New array object is returned from method or property. Using such member in performance-sensitive context can lead to decreased performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4005</Code>
      <Name>Unity Engine. The expensive operation is performed inside method or property. Using such member in performance-sensitive context can lead to decreased performance.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4006</Code>
      <Name>Unity Engine. Multiple operations between complex and numeric values. Prioritizing operations between numeric values can optimize execution time.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4007</Code>
      <Name>Unity Engine. Avoid creating and destroying UnityEngine objects in performance-sensitive context. Consider activating and deactivating them instead.</Name>
    </Rule>
    <Rule group="op" defaultLevel="LEVEL-3">
      <Code>V4008</Code>
      <Name>Unity Engine. Avoid using memory allocation Physics APIs in performance-sensitive context.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-798,CWE-259" owasp="OWASP-2.10.4" defaultLevel="LEVEL-3">
      <Code>V5601</Code>
      <Name>OWASP. Storing credentials inside source code can lead to security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-390" owasp="OWASP-11.1.8" defaultLevel="LEVEL-1">
      <Code>V5602</Code>
      <Name>OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-390" owasp="OWASP-11.1.8" defaultLevel="LEVEL-2">
      <Code>V5603</Code>
      <Name>OWASP. The original exception object was swallowed. Stack of original exception could be lost.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-609" owasp="OWASP-11.1.6,OWASP-1.11.3" defaultLevel="LEVEL-2">
      <Code>V5604</Code>
      <Name>OWASP. Potentially unsafe double-checked locking. Use volatile variable(s) or synchronization primitives to avoid this.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-367" owasp="OWASP-1.11.3,OWASP-11.1.6" defaultLevel="LEVEL-2">
      <Code>V5605</Code>
      <Name>OWASP. Unsafe invocation of event, NullReferenceException is possible. Consider assigning event to a local variable before invoking it.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1069,CWE-390,CWE-544" owasp="OWASP-7.4.2" defaultLevel="LEVEL-3">
      <Code>V5606</Code>
      <Name>OWASP. An exception handling block does not contain any code.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-544" owasp="OWASP-7.4.2" defaultLevel="LEVEL-3">
      <Code>V5607</Code>
      <Name>OWASP. Exception classes should be publicly accessible.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-89" owasp="OWASP-5.3.4,OWASP-5.3.5" defaultLevel="LEVEL-1">
      <Code>V5608</Code>
      <Name>OWASP. Possible SQL injection. Potentially tainted data is used to create SQL command.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-22" owasp="OWASP-12.3.1" defaultLevel="LEVEL-1">
      <Code>V5609</Code>
      <Name>OWASP. Possible path traversal vulnerability. Potentially tainted data is used as a path.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-79" owasp="OWASP-5.3.3" defaultLevel="LEVEL-1">
      <Code>V5610</Code>
      <Name>OWASP. Possible XSS vulnerability. Potentially tainted data might be used to execute a malicious script.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-502" owasp="OWASP-1.5.2,OWASP-5.5.3" defaultLevel="LEVEL-1">
      <Code>V5611</Code>
      <Name>OWASP. Potential insecure deserialization vulnerability. Potentially tainted data is used to create an object using deserialization.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-326" owasp="OWASP-9.1.3" defaultLevel="LEVEL-2">
      <Code>V5612</Code>
      <Name>OWASP. Do not use old versions of SSL/TLS protocols as it may cause security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-327,CWE-328" owasp="OWASP-2.9.3,OWASP-8.3.7" defaultLevel="LEVEL-2">
      <Code>V5613</Code>
      <Name>OWASP. Use of outdated cryptographic algorithm is not recommended.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-611" owasp="OWASP-5.5.2" defaultLevel="LEVEL-1">
      <Code>V5614</Code>
      <Name>OWASP. Potential XXE vulnerability. Insecure XML parser is used to process potentially tainted data.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-776" defaultLevel="LEVEL-1">
      <Code>V5615</Code>
      <Name>OWASP. Potential XEE vulnerability. Insecure XML parser is used to process potentially tainted data.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-77,CWE-78,CWE-88" owasp="OWASP-5.3.8" defaultLevel="LEVEL-2">
      <Code>V5616</Code>
      <Name>OWASP. Possible command injection. Potentially tainted data is used to create OS command.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-613" owasp="OWASP-3.3.2" defaultLevel="LEVEL-1">
      <Code>V5617</Code>
      <Name>OWASP. Assigning potentially negative or large value as timeout of HTTP session can lead to excessive session expiration time.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-918" owasp="OWASP-5.2.6,OWASP-12.6.1" defaultLevel="LEVEL-1">
      <Code>V5618</Code>
      <Name>OWASP. Possible server-side request forgery. Potentially tainted data is used in the URL.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-117" owasp="OWASP-7.3.1" defaultLevel="LEVEL-1">
      <Code>V5619</Code>
      <Name>OWASP. Possible log injection. Potentially tainted data is written into logs.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-90" owasp="OWASP-5.3.7" defaultLevel="LEVEL-1">
      <Code>V5620</Code>
      <Name>OWASP. Possible LDAP injection. Potentially tainted data is used in a search filter.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-209" owasp="OWASP-8.3.5" defaultLevel="LEVEL-2">
      <Code>V5621</Code>
      <Name>OWASP. Error message contains potentially sensitive data that may be exposed.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-643" owasp="OWASP-5.3.10" defaultLevel="LEVEL-1">
      <Code>V5622</Code>
      <Name>OWASP. Possible XPath injection. Potentially tainted data is used in the XPath expression.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-601" owasp="OWASP-5.1.5" defaultLevel="LEVEL-1">
      <Code>V5623</Code>
      <Name>OWASP. Possible open redirect vulnerability. Potentially tainted data is used in the URL.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-15" defaultLevel="LEVEL-1">
      <Code>V5624</Code>
      <Name>OWASP. Use of potentially tainted data in configuration may lead to security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1352,CWE-1035" owasp="OWASP-9.1.3" defaultLevel="LEVEL-2">
      <Code>V5625</Code>
      <Name>OWASP. Referenced package contains vulnerability.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1333" defaultLevel="LEVEL-1">
      <Code>V5626</Code>
      <Name>OWASP. Possible ReDoS vulnerability. Potentially tainted data is processed by regular expression that contains an unsafe pattern.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-943" owasp="OWASP-5.3.4" defaultLevel="LEVEL-1">
      <Code>V5627</Code>
      <Name>OWASP. Possible NoSQL injection. Potentially tainted data is used to create query.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-641,CWE-22,CWE-99" owasp="OWASP-5.1.4" defaultLevel="LEVEL-1">
      <Code>V5628</Code>
      <Name>OWASP. Possible Zip Slip vulnerability. Potentially tainted data is used in the path to extract the file.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-507" owasp="OWASP-10.2.3" defaultLevel="LEVEL-1">
      <Code>V5629</Code>
      <Name>OWASP. Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-113" defaultLevel="LEVEL-3">
      <Code>V5630</Code>
      <Name>OWASP. Possible cookie injection. Potentially tainted data is used to create a cookie.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-134" owasp="OWASP-1.3.10" defaultLevel="LEVEL-2">
      <Code>V5631</Code>
      <Name>OWASP. Use of externally-controlled format string. Potentially tainted data is used as a format string.</Name>
    </Rule>
  </RuleSet>
  <RuleSet lang="Java">
    <Rule group="fails">
      <Code>V009</Code>
      <Name>To use free version of PVS-Studio, source code files are required to start with a special comment.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V061</Code>
      <Name>An error has occurred.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V062</Code>
      <Name>Failed to run analyzer core. Make sure the correct 64-bit Java 11 or higher executable is used, or specify it manually.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V063</Code>
      <Name>Analysis aborted by timeout.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V064</Code>
      <Name>Unable to run a rule to analyze a code fragment.</Name>
    </Rule>
    <Rule group="fails">
      <Code>V065</Code>
      <Name>Unable to start analysis on a module.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1069" cert="ERR00-J" owasp="OWASP-7.4.2" defaultLevel="LEVEL-3">
      <Code>V5301</Code>
      <Name>OWASP. An exception handling block does not contain any code.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-544" owasp="OWASP-7.4.2" defaultLevel="LEVEL-3">
      <Code>V5302</Code>
      <Name>OWASP. Exception classes should be publicly accessible.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-390" owasp="OWASP-11.1.8" defaultLevel="LEVEL-1">
      <Code>V5303</Code>
      <Name>OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-609" cert="LCK10-J" owasp="OWASP-1.11.3" defaultLevel="LEVEL-1">
      <Code>V5304</Code>
      <Name>OWASP. Unsafe double-checked locking.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-798,CWE-259" owasp="OWASP-2.10.4" defaultLevel="LEVEL-3">
      <Code>V5305</Code>
      <Name>OWASP. Storing credentials inside source code can lead to security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-390" owasp="OWASP-11.1.8" defaultLevel="LEVEL-3">
      <Code>V5306</Code>
      <Name>OWASP. The original exception object was swallowed. Cause of original exception could be lost.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-337,CWE-336" owasp="OWASP-6.3.1" defaultLevel="LEVEL-3">
      <Code>V5307</Code>
      <Name>OWASP. Potentially predictable seed is used in pseudo-random number generator.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-190,CWE-191" cert="NUM00-J" owasp="OWASP-5.4.3" defaultLevel="LEVEL-2">
      <Code>V5308</Code>
      <Name>OWASP. Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-89" owasp="OWASP-5.3.4,OWASP-5.3.5" defaultLevel="LEVEL-1">
      <Code>V5309</Code>
      <Name>OWASP. Possible SQL injection. Potentially tainted data is used to create SQL command.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-77,CWE-78" owasp="OWASP-5.3.8" defaultLevel="LEVEL-1">
      <Code>V5310</Code>
      <Name>OWASP. Possible command injection. Potentially tainted data is used to create OS command.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-88" owasp="OWASP-5.3.8" defaultLevel="LEVEL-1">
      <Code>V5311</Code>
      <Name>OWASP. Possible argument injection. Potentially tainted data is used to create OS command.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-91" owasp="OWASP-5.3.10" defaultLevel="LEVEL-1">
      <Code>V5312</Code>
      <Name>OWASP. Possible XPath injection. Potentially tainted data is used in the XPath expression.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-327" cert="MSC61-J" owasp="OWASP-9.1.3" defaultLevel="LEVEL-1">
      <Code>V5313</Code>
      <Name>OWASP. Do not use old versions of SSL/TLS protocols as it may cause security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-1240" cert="MSC61-J" owasp="OWASP-6.2.5" defaultLevel="LEVEL-3">
      <Code>V5314</Code>
      <Name>OWASP. Use of an outdated hash algorithm is not recommended.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-327" cert="MSC61-J" owasp="OWASP-6.2.5" defaultLevel="LEVEL-1">
      <Code>V5315</Code>
      <Name>OWASP. Use of an outdated cryptographic algorithm is not recommended.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-807" defaultLevel="LEVEL-3">
      <Code>V5316</Code>
      <Name>Do not use the 'HttpServletRequest.getRequestedSessionId' method because it uses a session ID provided by a client.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-327" owasp="OWASP-6.2.2" defaultLevel="LEVEL-2">
      <Code>V5317</Code>
      <Name>OWASP. Implementing a cryptographic algorithm is not advised because an attacker might break it.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-266,CWE-276" cert="FIO01-J" owasp="OWASP-4.1.3" defaultLevel="LEVEL-2">
      <Code>V5318</Code>
      <Name>OWASP. Setting POSIX file permissions to 'all' or 'others' groups can lead to unintended access to files or directories.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-117" owasp="OWASP-7.3.1" defaultLevel="LEVEL-1">
      <Code>V5319</Code>
      <Name>OWASP. Possible log injection. Potentially tainted data is written into logs.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-15" defaultLevel="LEVEL-1">
      <Code>V5320</Code>
      <Name>OWASP. Use of potentially tainted data in configuration may lead to security issues.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-90" owasp="OWASP-5.3.7" defaultLevel="LEVEL-1">
      <Code>V5321</Code>
      <Name>OWASP. Possible LDAP injection. Potentially tainted data is used in a search filter.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-470" defaultLevel="LEVEL-1">
      <Code>V5322</Code>
      <Name>OWASP. Possible reflection injection. Potentially tainted data is used to select class or method.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-942,CWE-346" defaultLevel="LEVEL-1">
      <Code>V5323</Code>
      <Name>OWASP. Potentially tainted data is used to define 'Access-Control-Allow-Origin' header.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-601" owasp="OWASP-5.1.5" defaultLevel="LEVEL-1">
      <Code>V5324</Code>
      <Name>OWASP. Possible open redirect vulnerability. Potentially tainted data is used in the URL.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-942,CWE-346" defaultLevel="LEVEL-2">
      <Code>V5325</Code>
      <Name>OWASP. Setting the value of the 'Access-Control-Allow-Origin' header to '*' is potentially insecure.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-521,CWE-1391" defaultLevel="LEVEL-1">
      <Code>V5326</Code>
      <Name>OWASP. A password for a database connection should not be empty</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-20,CWE-400,CWE-1333" defaultLevel="LEVEL-1">
      <Code>V5327</Code>
      <Name>OWASP. Possible regex injection. Potentially tainted data is used to create regular expression</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-285" owasp="OWASP-4.1.5" defaultLevel="LEVEL-2">
      <Code>V5328</Code>
      <Name>OWASP. Using non-restrictive authorization checks could lead to security violations.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-377,CWE-379" defaultLevel="LEVEL-1">
      <Code>V5329</Code>
      <Name>OWASP. Using non-atomic file creation is not recommended because an attacker might intercept file ownership.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-79" owasp="OWASP-5.3.3" defaultLevel="LEVEL-1">
      <Code>V5330</Code>
      <Name>OWASP. Possible XSS injection. Potentially tainted data might be used to execute a malicious script.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-540,CWE-1051" cert="MSC03-J" defaultLevel="LEVEL-3">
      <Code>V5331</Code>
      <Name>OWASP. Hardcoded IP addresses are not secure.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-22,CWE-20,CWE-23,CWE-24,CWE-25,CWE-26,CWE-27,CWE-28,CWE-29,CWE-30,CWE-31,CWE-32,CWE-33,CWE-34,CWE-35,CWE-36,CWE-37,CWE-38,CWE-39,CWE-40" defaultLevel="LEVEL-1">
      <Code>V5332</Code>
      <Name>OWASP. Possible path traversal vulnerability. Potentially tainted data might be used to access files or folders outside a target directory.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-502" cert="SER12-J" defaultLevel="LEVEL-1">
      <Code>V5333</Code>
      <Name>OWASP. Possible insecure deserialization vulnerability. Potentially tainted data is used to create an object during deserialization.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-918" owasp="OWASP-5.2.6" defaultLevel="LEVEL-1">
      <Code>V5334</Code>
      <Name>OWASP. Possible server-side request forgery. Potentially tainted data in the URL is used to access a remote resource.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-611" owasp="OWASP-5.5.2" defaultLevel="LEVEL-1">
      <Code>V5335</Code>
      <Name>OWASP. Potential XXE vulnerability. Insecure XML parser is used to process potentially tainted data.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-776" defaultLevel="LEVEL-1">
      <Code>V5336</Code>
      <Name>OWASP. Potential XEE vulnerability. Insecure XML parser is used to process potentially tainted data.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-943" owasp="OWASP-5.3.4" defaultLevel="LEVEL-1">
      <Code>V5337</Code>
      <Name>OWASP. Possible NoSQL injection. Potentially tainted data is used to create query.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-22,CWE-23,CWE-99,CWE-641" owasp="OWASP-5.1.4" defaultLevel="LEVEL-1">
      <Code>V5338</Code>
      <Name>OWASP. Possible Zip Slip vulnerability. Potentially tainted data might be used to extract the file.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-95" owasp="OWASP-5.2.4" defaultLevel="LEVEL-1">
      <Code>V5339</Code>
      <Name>OWASP. Potential RCE vulnerability. Insecure GraalVM context is used to process potentially tainted data.</Name>
    </Rule>
    <Rule group="owasp" cwe="CWE-507" owasp="OWASP-10.2.3" defaultLevel="LEVEL-1">
      <Code>V5340</Code>
      <Name>OWASP. Code contains invisible characters that may alter its logic. Consider enabling the display of invisible characters in the code editor.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" defaultLevel="LEVEL-1">
      <Code>V6001</Code>
      <Name>There are identical sub-expressions to the left and to the right of the 'foo' operator.</Name>
    </Rule>
    <Rule group="ga" cert="MSC57-J" defaultLevel="LEVEL-3">
      <Code>V6002</Code>
      <Name>The switch statement does not cover all values of the enum.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6003</Code>
      <Name>The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V6004</Code>
      <Name>The 'then' statement is equivalent to the 'else' statement.</Name>
    </Rule>
    <Rule group="ga" cert="MSC56-J" defaultLevel="LEVEL-1">
      <Code>V6005</Code>
      <Name>The 'x' variable is assigned to itself.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-390" defaultLevel="LEVEL-1">
      <Code>V6006</Code>
      <Name>The object was created but it is not being used. The 'throw' keyword could be missing.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6007</Code>
      <Name>Expression is always true/false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476,CWE-690" cert="EXP01-J" defaultLevel="LEVEL-1">
      <Code>V6008</Code>
      <Name>Potential null dereference.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-628" defaultLevel="LEVEL-1">
      <Code>V6009</Code>
      <Name>Function receives an odd argument.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-252" cert="EXP00-J" defaultLevel="LEVEL-1">
      <Code>V6010</Code>
      <Name>The return value of function 'Foo' is required to be utilized.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="NUM13-J" defaultLevel="LEVEL-1">
      <Code>V6011</Code>
      <Name>The expression contains a suspicious mix of integer and real types.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-783" defaultLevel="LEVEL-1">
      <Code>V6012</Code>
      <Name>The '?:' operator, regardless of its conditional expression, always returns one and the same value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-595" cert="EXP03-J" defaultLevel="LEVEL-2">
      <Code>V6013</Code>
      <Name>Comparison of arrays, strings, collections by reference. Possibly an equality comparison was intended.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-393" defaultLevel="LEVEL-2">
      <Code>V6014</Code>
      <Name>It's odd that this method always returns one and the same value of NN.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V6015</Code>
      <Name>Consider inspecting the expression. Probably the '!='/'-='/'+=' should be used here.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6016</Code>
      <Name>Suspicious access to element by a constant index inside a loop.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6017</Code>
      <Name>The 'X' counter is not used inside a nested loop. Consider inspecting usage of 'Y' counter.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6018</Code>
      <Name>Constant expression in switch statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" defaultLevel="LEVEL-1">
      <Code>V6019</Code>
      <Name>Unreachable code detected. It is possible that an error is present.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-369" cert="NUM02-J" defaultLevel="LEVEL-1">
      <Code>V6020</Code>
      <Name>Division or mod division by zero.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" cert="MSC56-J" defaultLevel="LEVEL-1">
      <Code>V6021</Code>
      <Name>The value is assigned to the 'x' variable but is not used.</Name>
    </Rule>
    <Rule group="ga" cert="MSC56-J" defaultLevel="LEVEL-2">
      <Code>V6022</Code>
      <Name>Parameter is not used inside method's body.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6023</Code>
      <Name>Parameter 'A' is always rewritten in method body before being used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V6024</Code>
      <Name>The 'continue' operator will terminate 'do { ... } while (false)' loop because the condition is always false.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-125,CWE-787" defaultLevel="LEVEL-1">
      <Code>V6025</Code>
      <Name>Possibly index is out of bound.</Name>
    </Rule>
    <Rule group="ga" cert="MSC56-J" defaultLevel="LEVEL-1">
      <Code>V6026</Code>
      <Name>This value is already assigned to the 'b' variable.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V6027</Code>
      <Name>Variables are initialized through the call to the same function. It's probably an error or un-optimized code.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6028</Code>
      <Name>Identical expression to the left and to the right of compound assignment.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-683" defaultLevel="LEVEL-2">
      <Code>V6029</Code>
      <Name>Possible incorrect order of arguments passed to method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-2">
      <Code>V6030</Code>
      <Name>The function located to the right of the '|' and '&amp;' operators will be called regardless of the value of the left operand. Consider using '||' and '&amp;&amp;' instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" cert="MSC57-J" defaultLevel="LEVEL-2">
      <Code>V6031</Code>
      <Name>The variable 'X' is being used for this loop and for the outer loop.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6032</Code>
      <Name>It is odd that the body of 'Foo_1' function is fully equivalent to the body of 'Foo_2' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-462" defaultLevel="LEVEL-1">
      <Code>V6033</Code>
      <Name>An item with the same key has already been added.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-758" cert="NUM14-J" defaultLevel="LEVEL-2">
      <Code>V6034</Code>
      <Name>Shift by N bits is inconsistent with the size of type.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6035</Code>
      <Name>Double negation is present in the expression: !!x.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-457" defaultLevel="LEVEL-1">
      <Code>V6036</Code>
      <Name>The value from the uninitialized optional is used.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6037</Code>
      <Name>An unconditional 'break/continue/return/goto' within a loop.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-570,CWE-571" cert="NUM07-J" defaultLevel="LEVEL-1">
      <Code>V6038</Code>
      <Name>Comparison with 'double.NaN' is meaningless. Use 'double.isNaN()' method instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-561" cert="MSC56-J" defaultLevel="LEVEL-1">
      <Code>V6039</Code>
      <Name>There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-483" defaultLevel="LEVEL-1">
      <Code>V6040</Code>
      <Name>The code's operational logic does not correspond with its formatting.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-481" cert="EXP51-J" defaultLevel="LEVEL-1">
      <Code>V6041</Code>
      <Name>Suspicious assignment inside the conditional expression of 'if/while/do...while' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-2">
      <Code>V6042</Code>
      <Name>The expression is checked for compatibility with type 'A', but is cast to type 'B'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V6043</Code>
      <Name>Consider inspecting the 'for' operator. Initial and final values of the iterator are the same.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="EXP05-J" defaultLevel="LEVEL-1">
      <Code>V6044</Code>
      <Name>Postfix increment/decrement is senseless because this variable is overwritten.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6045</Code>
      <Name>Suspicious subexpression in a sequence of similar comparisons.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-686,CWE-685,CWE-628" defaultLevel="LEVEL-2">
      <Code>V6046</Code>
      <Name>Incorrect format. Consider checking the N format items of the 'Foo' function.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V6047</Code>
      <Name>It is possible that this 'else' branch must apply to the previous 'if' statement.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-2">
      <Code>V6048</Code>
      <Name>This expression can be simplified. One of the operands in the operation equals NN. Probably it is a mistake.</Name>
    </Rule>
    <Rule group="ga" cert="MET09-J" defaultLevel="LEVEL-3">
      <Code>V6049</Code>
      <Name>Classes that define 'equals' method must also define 'hashCode' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" cert="DCL00-J" defaultLevel="LEVEL-1">
      <Code>V6050</Code>
      <Name>Class initialization cycle is present.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-584" cert="ERR04-J" defaultLevel="LEVEL-1">
      <Code>V6051</Code>
      <Name>Use of jump statements in 'finally' block can lead to the loss of unhandled exceptions.</Name>
    </Rule>
    <Rule group="ga" cert="MET05-J" defaultLevel="LEVEL-1">
      <Code>V6052</Code>
      <Name>Calling an overridden method in parent-class constructor may lead to use of uninitialized data.</Name>
    </Rule>
    <Rule group="ga" cert="MSC06-J" defaultLevel="LEVEL-1">
      <Code>V6053</Code>
      <Name>Collection is modified while iteration is in progress. ConcurrentModificationException may occur.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-486" cert="OBJ09-J" defaultLevel="LEVEL-3">
      <Code>V6054</Code>
      <Name>Classes should not be compared by their name.</Name>
    </Rule>
    <Rule group="ga" cert="EXP06-J" defaultLevel="LEVEL-1">
      <Code>V6055</Code>
      <Name>Expression inside assert statement can change object's state.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6056</Code>
      <Name>Implementation of 'compareTo' overloads the method from a base class. Possibly, an override was intended.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-571" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6057</Code>
      <Name>Consider inspecting this expression. The expression is excessive or contains a misprint.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-1024" defaultLevel="LEVEL-1">
      <Code>V6058</Code>
      <Name>Comparing objects of incompatible types.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-185" defaultLevel="LEVEL-1">
      <Code>V6059</Code>
      <Name>Odd use of special character in regular expression. Possibly, it was intended to be escaped.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" defaultLevel="LEVEL-1">
      <Code>V6060</Code>
      <Name>The reference was used before it was verified against null.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" cert="DCL50-J" defaultLevel="LEVEL-1">
      <Code>V6061</Code>
      <Name>The used constant value is represented by an octal form.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-674" defaultLevel="LEVEL-1">
      <Code>V6062</Code>
      <Name>Possible infinite recursion.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="MSC51-J" defaultLevel="LEVEL-1">
      <Code>V6063</Code>
      <Name>Odd semicolon ';' after 'if/for/while' operator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-572" cert="THI00-J" defaultLevel="LEVEL-1">
      <Code>V6064</Code>
      <Name>Suspicious invocation of Thread.run().</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6065</Code>
      <Name>A non-serializable class should not be serialized.</Name>
    </Rule>
    <Rule group="ga" cert="EXP04-J" defaultLevel="LEVEL-1">
      <Code>V6066</Code>
      <Name>Passing objects of incompatible types to the method of collection.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-3">
      <Code>V6067</Code>
      <Name>Two or more case-branches perform the same actions.</Name>
    </Rule>
    <Rule group="ga" cert="NUM10-J" defaultLevel="LEVEL-3">
      <Code>V6068</Code>
      <Name>Suspicious use of BigDecimal class.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6069</Code>
      <Name>Unsigned right shift assignment of negative 'byte' / 'short' value.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-662" cert="LCK01-J" defaultLevel="LEVEL-2">
      <Code>V6070</Code>
      <Name>Unsafe synchronization on an object.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6071</Code>
      <Name>This file is marked with copyleft license, which requires you to open the derived source code.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2">
      <Code>V6072</Code>
      <Name>Two similar code fragments were found. Perhaps, this is a typo and 'X' variable should be used instead of 'Y'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-684" cert="EXP01-J" defaultLevel="LEVEL-2">
      <Code>V6073</Code>
      <Name>It is not recommended to return null or throw exceptions from 'toString' / 'clone' methods.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-567" cert="VNA02-J" defaultLevel="LEVEL-2">
      <Code>V6074</Code>
      <Name>Non-atomic modification of volatile variable.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-684" cert="SER01-J" defaultLevel="LEVEL-1">
      <Code>V6075</Code>
      <Name>The signature of method 'X' does not conform to serialization requirements.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6076</Code>
      <Name>Recurrent serialization will use cached object state from first serialization.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-478" cert="MSC57-J" defaultLevel="LEVEL-1">
      <Code>V6077</Code>
      <Name>A suspicious label is present inside a switch(). It is possible that these are misprints and 'default:' label should be used instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6078</Code>
      <Name>Potential Java SE API compatibility issue.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-129" defaultLevel="LEVEL-3">
      <Code>V6079</Code>
      <Name>Value of variable is checked after use. Potential logical error is present. Check lines: N1, N2.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-2">
      <Code>V6080</Code>
      <Name>Consider checking for misprints. It's possible that an assigned variable should be checked in the next condition.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6081</Code>
      <Name>Annotation that does not have 'RUNTIME' retention policy will not be accessible through Reflection API.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-609" cert="LCK10-J" defaultLevel="LEVEL-1">
      <Code>V6082</Code>
      <Name>Unsafe double-checked locking.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6083</Code>
      <Name>Serialization order of fields should be preserved during deserialization.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6084</Code>
      <Name>Suspicious return of an always empty collection.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-697" defaultLevel="LEVEL-1">
      <Code>V6085</Code>
      <Name>An abnormality within similar comparisons. It is possible that a typo is present inside the expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" defaultLevel="LEVEL-1">
      <Code>V6086</Code>
      <Name>Suspicious code formatting. 'else' keyword is probably missing.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-3">
      <Code>V6087</Code>
      <Name>InvalidClassException may occur during deserialization.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6088</Code>
      <Name>Result of this expression will be implicitly cast to 'Type'. Check if program logic handles it correctly.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-670" cert="EXP52-J" defaultLevel="LEVEL-1">
      <Code>V6089</Code>
      <Name>It's possible that the line was commented out improperly, thus altering the program's operation logics.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-665" defaultLevel="LEVEL-1">
      <Code>V6090</Code>
      <Name>Field 'A' is being used before it was initialized.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6091</Code>
      <Name>Suspicious getter/setter implementation. The 'A' field should probably be returned/assigned instead.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6092</Code>
      <Name>A resource is returned from try-with-resources statement. It will be closed before the method exits.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-476" cert="EXP01-J" defaultLevel="LEVEL-1">
      <Code>V6093</Code>
      <Name>Automatic unboxing of a variable may cause NullPointerException.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1">
      <Code>V6094</Code>
      <Name>The expression was implicitly cast from integer type to real type. Consider utilizing an explicit type cast to avoid the loss of a fractional part.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" cert="LCK09-J" defaultLevel="LEVEL-3">
      <Code>V6095</Code>
      <Name>Thread.sleep() inside synchronized block/method may cause decreased performance.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-3">
      <Code>V6096</Code>
      <Name>An odd precise comparison. Consider using a comparison with defined precision: Math.abs(A - B) &lt; Epsilon or Math.abs(A - B) &gt; Epsilon.</Name>
    </Rule>
    <Rule group="ga" cert="DCL50-J" defaultLevel="LEVEL-3">
      <Code>V6097</Code>
      <Name>Lowercase 'L' at the end of a long literal can be mistaken for '1'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6098</Code>
      <Name>The method does not override another method from the base class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-3">
      <Code>V6099</Code>
      <Name>The initial value of the index in the nested loop equals 'i'. Consider using 'i + 1' instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-688" defaultLevel="LEVEL-2">
      <Code>V6100</Code>
      <Name>An object is used as an argument to its own method. Consider checking the first actual argument of the 'Foo' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-253" cert="EXP00-J" defaultLevel="LEVEL-2">
      <Code>V6101</Code>
      <Name>compareTo()-like methods can return not only the values -1, 0 and 1, but any values.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-662" defaultLevel="LEVEL-2">
      <Code>V6102</Code>
      <Name>Inconsistent synchronization of a field. Consider synchronizing the field on all usages.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-391" defaultLevel="LEVEL-3">
      <Code>V6103</Code>
      <Name>Ignored InterruptedException could lead to delayed thread shutdown.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6104</Code>
      <Name>A pattern was detected: A || (A &amp;&amp; ...). The expression is excessive or contains a logical error.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" defaultLevel="LEVEL-2">
      <Code>V6105</Code>
      <Name>Consider inspecting the loop expression. It is possible that different variables are used inside initializer and iterator.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-704" defaultLevel="LEVEL-3">
      <Code>V6106</Code>
      <Name>Casting expression to 'X' type before implicitly casting it to other type may be excessive or incorrect.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-547" defaultLevel="LEVEL-3">
      <Code>V6107</Code>
      <Name>The constant NN is being utilized. The resulting value could be inaccurate. Consider using the KK constant.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-834" cert="NUM09-J" defaultLevel="LEVEL-2">
      <Code>V6108</Code>
      <Name>Do not use real-type variables in 'for' loop counters.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-337,CWE-336" defaultLevel="LEVEL-3">
      <Code>V6109</Code>
      <Name>Potentially predictable seed is used in pseudo-random number generator.</Name>
    </Rule>
    <Rule group="ga" cert="ENV02-J" defaultLevel="LEVEL-3">
      <Code>V6110</Code>
      <Name>Using an environment variable could be unsafe or unreliable. Consider using trusted system property instead</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-839" defaultLevel="LEVEL-1">
      <Code>V6111</Code>
      <Name>Potentially negative value is used as the size of an array.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2">
      <Code>V6112</Code>
      <Name>Calling the 'getClass' method repeatedly or on the value of the '.class' literal will always return the instance of the 'Class&lt;Class&gt;' type.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-2&lt;">
      <Code>V6113</Code>
      <Name>Suspicious division. Absolute value of the left operand is less than the value of the right operand.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-2">
      <Code>V6114</Code>
      <Name>The 'A' class containing Closeable members does not release the resources that the field is holding.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-404" defaultLevel="LEVEL-2">
      <Code>V6115</Code>
      <Name>Not all Closeable members are released inside the 'close' method.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-459" defaultLevel="LEVEL-3">
      <Code>V6116</Code>
      <Name>The class does not implement the Closeable interface, but it contains the 'close' method that releases resources.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190,CWE-191" cert="NUM00-J" defaultLevel="LEVEL-2">
      <Code>V6117</Code>
      <Name>Possible overflow. The expression will be evaluated before casting. Consider casting one of the operands instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-390" defaultLevel="LEVEL-3">
      <Code>V6118</Code>
      <Name>The original exception object was swallowed. Cause of original exception could be lost.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-480" defaultLevel="LEVEL-1&lt;">
      <Code>V6119</Code>
      <Name>The result of '&amp;' operator is always '0'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-682" defaultLevel="LEVEL-1&lt;">
      <Code>V6120</Code>
      <Name>The result of the '&amp;' operator is '0' because one of the operands is '0'.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-2&lt;">
      <Code>V6121</Code>
      <Name>Return value is not always used. Consider inspecting the 'foo' method.</Name>
    </Rule>
    <Rule group="ga" defaultLevel="LEVEL-1">
      <Code>V6122</Code>
      <Name>The 'Y' (week year) pattern is used for date formatting. Check whether the 'y' (year) pattern was intended instead.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-563" defaultLevel="LEVEL-1&lt;">
      <Code>V6123</Code>
      <Name>Modified value of the operand is not used after the increment/decrement operation.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-681,CWE-197" cert="NUM12-J" defaultLevel="LEVEL-1">
      <Code>V6124</Code>
      <Name>Converting an integer literal to the type with a smaller value range will result in overflow.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" defaultLevel="LEVEL-2">
      <Code>V6125</Code>
      <Name>Calling the 'wait', 'notify', and 'notifyAll' methods outside of synchronized context will lead to 'IllegalMonitorStateException'.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-821" cert="LCK03-J" defaultLevel="LEVEL-1">
      <Code>V6126</Code>
      <Name>Native synchronization used on high-level concurrency class.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-772,CWE-459" cert="FIO04-J" defaultLevel="LEVEL-1">
      <Code>V6127</Code>
      <Name>Closeable object is not closed. This may lead to a resource leak.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-672" defaultLevel="LEVEL-2">
      <Code>V6128</Code>
      <Name>Using a Closeable object after it was closed can lead to an exception.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-833" cert="LCK07-J" defaultLevel="LEVEL-1">
      <Code>V6129</Code>
      <Name>Possible deadlock due to incorrect synchronization order between locks.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="NUM00-J" defaultLevel="LEVEL-1">
      <Code>V6130</Code>
      <Name>Integer overflow in arithmetic expression.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-190" cert="NUM00-J" defaultLevel="LEVEL-2">
      <Code>V6131</Code>
      <Name>Casting to a type with a smaller range will result in an overflow.</Name>
    </Rule>
    <Rule group="ga" cwe="CWE-691" defaultLevel="LEVEL-1">
      <Code>V6132</Code>
      <Name>It is possible that 'else' block was forgotten or commented out, thus altering the program's operation logics.</Name>
    </Rule>
  </RuleSet>
</PVS-Studio_Rules>