Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.
Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.
Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Every time we report a problem in a declaration/expression that occupies more
than one line, the codan marks the entire line as a problem - including
everything before the node. This patch solves this inconvenient behavior.
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=486610 for a complete
explanation.
Change-Id: I742cbaac8a1392676695d574355597b0cfc87385
Signed-off-by: Alisson Linhares de Carvalho <arescarv@gmail.com>
implement few code style rules for comments
- no line comments (sometimes enforced)
- no nested comments (no /* in block comment)
Change-Id: Ib4042a8ffab0dc1c5effd7b77ab6d2f51a1e6cae
basically for the code like
if (a) return 1; else return 2;
a++; // this should be a dead code node
but we don't check connector node of "if" and don't add
it to dead nodes graph resulting it this code not being marked as dead,
which can lead to false positives or false negatives for checkers that
use that. Same apply for other control statements...
Change-Id: Iafb4b48ca960f0ffab2c0265285a31cb08eb0d11
This makes it easier to change arguments for all tests. As a side-effect,
all tests now enable assertion (-ea) and have the same max heap size, etc.
Change-Id: I0965d40ba3283efe7eacdf927f6c302ee0ab30f0
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
- addOutgoing cannot join JumpNode - block will be added to dead list
instead
- addjusted goto code to not use addOutgoing but using setJump directly
- corrected code that doing fake return to deal jump nodes at the end
- corrected code that marks up dead code to remove jump targets
- corrected code that calculates all nodes in the graph to take into
account dangling labels
- fixed CFG viewer to show unconnected labeled statements
Change-Id: Ie4d9e37678e3ebaae8e9f268e6f37342e14a1444
Reviewed-on: https://git.eclipse.org/r/38189
Tested-by: Hudson CI
Reviewed-by: Elena Laskavaia <elaskavaia.cdt@gmail.com>
Added system flag that is used to propagate exception
instead of swallowing. Set by default in codan junit tests.
Change-Id: Iccda9a7b2e419192bb9f4eec4b89d525e152fc81
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
Reviewed-on: https://git.eclipse.org/r/37482
Jacoco arguments are missing when executing certain tests. This happens when
argLine is being overriden. We had the same problem in Linux Tools. We solved
it by prepending the argLine with ${tycho.testArgLine}. This should help
improving the Code coverage metric in Sonar.
Also update the jacoco version to fix a bug when building with Java 8.
Change-Id: I7f73f40488efc01fc7d643940c1ac0d5950c900d
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/32507
Tested-by: Hudson CI
Reviewed-by: Alvaro Sanchez-Leon <alvsan09@gmail.com>
When building control flow graph we can consider constants
and not add some branches in decisions nodes, that make CFG
more accurate and elimate some false positives
Change-Id: I19c623e1e6d2dc7416a0e796a98168df7a976111
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
Reviewed-on: https://git.eclipse.org/r/28726
Sometimes, index-based checkers (AbstractIndexAstChecker) were skipped
because the indexer was not fully initialized so expected errors were
not getting reported.
Change-Id: Ibb764224f11ae4a867a4aa6b9de2b8ec55e90c55
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/23428
Reviewed-by: Nathan Ridge <zeratul976@hotmail.com>
Tested-by: Hudson CI
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>