Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
3ff10e1e
Commit
3ff10e1e
authored
Sep 29, 2018
by
Paul
Browse files
Add more checks
parent
a9c48b34
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
200 additions
and
2 deletions
+200
-2
cppcheck.rules
cppcheck.rules
+198
-0
src/opt/memory_coloring_impl.hpp
src/opt/memory_coloring_impl.hpp
+2
-2
No files found.
cppcheck.rules
View file @
3ff10e1e
...
...
@@ -90,3 +90,201 @@
<summary>
Double negative is always positive
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( \w+ (\||&) \w+ \)]]>
</pattern>
<message>
<id>
BitwiseOperatorInConditional
</id>
<severity>
style
</severity>
<summary>
Bitwise operator found in if statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( [^)]+ \) { if \( [^)]+ \) ({[^{}]*(?1)*[^{}]*}) }]]>
</pattern>
<message>
<id>
CollapsibleIfStatements
</id>
<severity>
style
</severity>
<summary>
These two if statements can be collapsed into one.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[catch \( [^())]+ \) { }]]>
</pattern>
<message>
<id>
EmptyCatchStatement
</id>
<severity>
style
</severity>
<summary>
An empty catch statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[do { } while \(]]>
</pattern>
<message>
<id>
EmptyDoWhileStatement
</id>
<severity>
style
</severity>
<summary>
Empty do-while.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[else { }]]>
</pattern>
<message>
<id>
EmptyElseBlock
</id>
<severity>
style
</severity>
<summary>
Empty else statement can be safely removed.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( [^()]+ \) { }]]>
</pattern>
<message>
<id>
EmptyForStatement
</id>
<severity>
style
</severity>
<summary>
Empty for statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( [^()]+ \) { }]]>
</pattern>
<message>
<id>
EmptyIfStatement
</id>
<severity>
style
</severity>
<summary>
Empty if statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[switch \( [^()]+ \) { }]]>
</pattern>
<message>
<id>
EmptySwitchStatement
</id>
<severity>
style
</severity>
<summary>
Empty switch statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[while \( [^()]+ \) { }]]>
</pattern>
<message>
<id>
EmptyWhileStatement
</id>
<severity>
style
</severity>
<summary>
Empty while statement.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[ for \( ; [^;]+ ; \)]]>
</pattern>
<message>
<id>
ForLoopShouldBeWhileLoop
</id>
<severity>
style
</severity>
<summary>
For loop should be written as a while loop.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
goto
</pattern>
<message>
<id>
GotoStatement
</id>
<severity>
style
</severity>
<summary>
Goto considered harmful.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( \w+ != \w+ \) ({[^{}]*(?1)*[^{}]*}) else { (?!if)]]>
</pattern>
<message>
<id>
InvertedLogic
</id>
<severity>
style
</severity>
<summary>
It is cleaner to invert the logic.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( ! \w+ \) ({[^{}]*(?1)*[^{}]*}) else { (?!if)]]>
</pattern>
<message>
<id>
InvertedLogic
</id>
<severity>
style
</severity>
<summary>
It is cleaner to invert the logic.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[\w+ != \w+ \?]]>
</pattern>
<message>
<id>
InvertedLogic
</id>
<severity>
style
</severity>
<summary>
It is cleaner to invert the logic.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[! \w+ \?]]>
</pattern>
<message>
<id>
InvertedLogic
</id>
<severity>
style
</severity>
<summary>
It is cleaner to invert the logic.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[\? (true|false) : (true|false)]]>
</pattern>
<message>
<id>
RedundantConditionalOperator
</id>
<severity>
style
</severity>
<summary>
Conditional operator is redundant.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[if \( [^()]+ \) { return (true|false) ; } else { return (true|false) ; }]]>
</pattern>
<message>
<id>
RedundantIfStatement
</id>
<severity>
style
</severity>
<summary>
The if statement is redundant.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( \w+ (\w+) = \w+ ; \1 < \w+ ; (\1 \+\+|\+\+ \1|\1 \-\-|\-\- \1) \) { \w+ \[ \1 \] = \w+ \[ \1 \] ; }]]>
</pattern>
<message>
<id>
useStlAlgorithm
</id>
<severity>
style
</severity>
<summary>
Considering using std::copy instead.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( \w+ (\w+) = \w+ ; \1 < \w+ ; (\1 \+\+|\+\+ \1|\1 \-\-|\-\- \1) \) { \w+ \[ \1 \] = \w+ ; }]]>
</pattern>
<message>
<id>
useStlAlgorithm
</id>
<severity>
style
</severity>
<summary>
Considering using std::fill instead.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( \w+ (\w+) = \w+ ; \1 < \w+ ; (\1 \+\+|\+\+ \1|\1 \-\-|\-\- \1) \) { \w+ \[ \1 \] = (\w+ :: )*\w+ \( \) ; }]]>
</pattern>
<message>
<id>
useStlAlgorithm
</id>
<severity>
style
</severity>
<summary>
Considering using std::generate instead.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( \w+ (\w+) = \w+ ; \1 < \w+ ; (\1 \+\+|\+\+ \1|\1 \-\-|\-\- \1) \) { \w+ \[ \1 \] = (\w+ :: )*\w+ \( \w+ \[ \1 \] \) ; }]]>
</pattern>
<message>
<id>
useStlAlgorithm
</id>
<severity>
style
</severity>
<summary>
Considering using std::transform instead.
</summary>
</message>
</rule>
<rule>
<tokenlist>
normal
</tokenlist>
<pattern>
<![CDATA[for \( \w+ (\w+) = \w+ ; \1 < \w+ ; (\1 \+\+|\+\+ \1|\1 \-\-|\-\- \1) \) { \w+ \[ \1 \] = (\w+ :: )*\w+ \( \w+ \[ \1 \] , \w+ \[ \1 \] \) ; }]]>
</pattern>
<message>
<id>
useStlAlgorithm
</id>
<severity>
style
</severity>
<summary>
Considering using std::transform instead.
</summary>
</message>
</rule>
src/opt/memory_coloring_impl.hpp
View file @
3ff10e1e
...
...
@@ -138,11 +138,11 @@ struct memory_coloring_impl
int
len2
=
i2
->
get_end
()
-
i2
->
get_begin
();
if
(
len1
!=
len2
)
{
return
(
len1
<
len2
)
?
true
:
false
;
return
(
len1
<
len2
);
}
else
if
(
i1
->
result
.
bytes
()
!=
i2
->
result
.
bytes
())
{
return
(
i1
->
result
.
bytes
()
<
i2
->
result
.
bytes
())
?
true
:
false
;
return
(
i1
->
result
.
bytes
()
<
i2
->
result
.
bytes
());
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment