Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions sonar-cxx-plugin/src/main/resources/cppcheck.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2209,7 +2209,7 @@ Member variable is not initialized in the constructor.
<name>Shifting by a negative value</name>
<description>
<![CDATA[<p>
Shifting by a negative value is undefined behaviour.
Shifting a negative value is undefined behaviour.
</p><h2>References</h2>
<p><a href="https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=4385" target="_blank">INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand</a></p>
]]>
Expand Down Expand Up @@ -2452,7 +2452,7 @@ Shifting by a negative value is undefined behaviour.
Dangerous iterator comparison using operator &lt;.
</name>
<description>
Dangerous iterator comparison using operator&lt; on a STL container.
Dangerous iterator comparison using operator&lt; on iterator.
</description>
</rule>

Expand Down Expand Up @@ -3176,6 +3176,31 @@ Either the condition is redundant or there is possible null pointer dereference:
int result is returned as long value. If the return value is long to avoid loss of information, then you have loss of information.
</description>
</rule>
<!-- ########### New in cppcheck 1.72 ########### -->
<rule>
<key>assignBoolToFloat</key>
<configkey>assignBoolToFloat</configkey>
<name>Boolean value assigned to floating point variable</name>
<description>
Boolean value assigned to floating point variable.
</description>
</rule>
<rule>
<key>invalidTestForOverflow</key>
<configkey>invalidTestForOverflow</configkey>
<name>Invalid test for overflow (undefined behavior)</name>
<description>
Invalid test for overflow &apos;x + u &lt; x&apos;. Condition is always false unless there is overflow, and overflow is UB.
</description>
</rule>
<rule>
<key>unknownEvaluationOrder</key>
<configkey>unknownEvaluationOrder</configkey>
<name>Expression depends on order of evaluation (side effects)</name>
<description>
Expression &apos;x = x++;&apos; depends on order of evaluation of side effects.
</description>
</rule>
</rules>


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ public void createRulesTest() {
def.define(context);

RulesDefinition.Repository repo = context.repository(CxxCppCheckRuleRepository.KEY);
assertEquals(344, repo.rules().size());
assertEquals(347, repo.rules().size());
}
}