Paul Fultz II
5bebeec224
Fix issue 8775: Dont follow aliased variables ( #1390 )
2018-09-24 06:37:47 +02:00
orbitcowboy
d08b39c915
Improved const correctness of local variables. There are no functional changes intended. ( #1392 )
2018-09-23 20:24:51 +02:00
Daniel Marjamäki
6ceab1f245
New fix for #8771 . Remove line attribute in <location> when there is no line. This is more 'proper'.
2018-09-23 17:27:38 +02:00
Daniel Marjamäki
83e8465d18
Fixed #8771 (Invalid line number on unmatchedSuppression)
2018-09-23 17:05:32 +02:00
Daniel Marjamäki
3a007cbcbf
astyle formatting
...
[ci skip]
2018-09-23 17:04:52 +02:00
Daniel Marjamäki
7f255c9e6f
Refactoring: Use range for loop
2018-09-23 17:02:54 +02:00
Daniel Marjamäki
7db671fee6
Suppressions::NO_LINE : fixed comparisons
2018-09-23 16:50:51 +02:00
Daniel Marjamäki
afe09f4d7a
Temporarily comment out the followVariable() handling
2018-09-23 16:03:18 +02:00
orbitcowboy
29d7872440
Improvements for PCRE API usage (HAVE_RULES=yes) ( #1384 )
...
* PCRE: added pcre_study to improve regex matching speed.
* PCRE: catch return values from pcre_exec and return an error message in case it fails.
* Formatted the code. There are no functional changes intended.
* PCRE: decode internal PCRE error messages.
* Integrating comments from PR.
* PCRE: Use pcre_study() only in case PCRE_CONFIG_JIT is defined.
* PCRE: Fixed potential resource leak. In case prce_compile worked, but pcre_study() returns an error, the allocated resources by pcre_compile() can be freed.
* Make travis happy.
* PCRE: Improved output message format.
* PCRE: Attempt to be compliant to older PCRE versions and fix travis build.
2018-09-23 14:27:46 +02:00
Simon Martin
6bde2445a6
Ticket #8632 : Parenthesize ternary operator operands containing < to avoid wrongly thinking a template instantiation is met. ( #1389 )
2018-09-23 10:27:38 +02:00
Matthias Krüger
f965e5873d
checkstl: remove uused variable 'beginCondTok'
...
Was:
lib/checkstl.cpp:2022:30: warning: unused variable 'beginCondTok' [-Wunused-variable]
const Token *beginCondTok = condBodyTok->previous()->link();
^
also run dmake to update Makefile
2018-09-22 21:10:21 +02:00
Simon Martin
915acac0b8
Ticket #8734 : Skip static member variables in CheckUninitVar. ( #1388 )
2018-09-22 16:52:34 +02:00
Paul Fultz II
d43cd56afd
Show line number when suggesting std::transform ( #1385 )
2018-09-21 10:38:30 +02:00
orbitcowboy
a26ac4d266
Running astyle. There is no functional change intended.
2018-09-21 08:53:09 +02:00
Paul Fultz II
1e347f6cde
Initial check for recommending algorithms ( #1352 )
...
Add initial check for loop algorithms
2018-09-19 18:58:59 +02:00
shikamu
83cb0b3394
--suppress on line 0 ( #1354 )
...
Fixed --suppress on line 0
2018-09-18 12:58:14 +02:00
orbitcowboy
a812da2cf1
Formatted the code.
2018-09-17 17:16:32 +02:00
IOBYTE
e9a44f70b2
Remove out of line member functions of instantiated template classes. ( #1377 )
...
* Remove out of line member functions of instantiated template classes.
2018-09-14 14:16:34 +02:00
Paul Fultz II
4e7ed9ea6e
More robust checking for crashes in followVar ( #1375 )
...
More robust checking for crashes in followVar
2018-09-13 09:19:15 +02:00
Paul Fultz II
eb07280075
Fix issue 8743: FP when derefencing iterators ( #1376 )
2018-09-12 17:33:53 +02:00
Paul Fultz II
90a29d986b
Fix issue 8730: Dont follow variables with unknown symbols ( #1374 )
2018-09-12 17:30:18 +02:00
amai2012
9f5e648b9f
Enhance debug output for AST syntax error (inspired by #8747 )
2018-09-10 08:55:46 +02:00
Daniel Marjamäki
0dfedd977e
CppCheck: Minor tweak. Do no clear internalErrorFound, instead ensure that it's not written upon suppression
2018-09-10 06:02:01 +02:00
Daniel Marjamäki
523a9c1c4a
Fixed #8746 (Syntax error, AST broken (using a::operator=))
2018-09-09 21:11:45 +02:00
Daniel Marjamäki
1bb1c4cc8e
Use early continue
2018-09-09 20:58:30 +02:00
Daniel Marjamäki
404eb6c746
Fixed #8745 (Syntax error: AST broken (or))
2018-09-09 16:41:06 +02:00
Daniel Marjamäki
772939476d
Remove inconclusive warnings about reading empty stl container. We have better ValueFlow-based checking.
2018-09-09 11:25:04 +02:00
Paul Fultz II
f4f3f81e8f
Fix issue 8741: Require pure when following variables in isSameExpression ( #1373 )
2018-09-09 07:08:32 +02:00
Paul Fultz II
fa40b821e6
Fix issue 8740: Add a pass to check for valid operators ( #1372 )
2018-09-08 21:10:34 +02:00
Daniel Marjamäki
509cb35168
astyle formatting
...
[ci skip]
2018-09-08 15:19:32 +02:00
tam do thanh
7ad09b44c3
Ticket 7792: Suppression both exit_code and syntaxError when call cppcheck suppressions ( #1345 )
2018-09-08 11:09:49 +02:00
Daniel Marjamäki
d7de46f50e
ValueFlow: Fix false positive for container size
2018-09-08 10:43:08 +02:00
Daniel Marjamäki
738fb1b23a
Disabled CheckClass::checkCopyCtorAndEqOperator because of FP ( #8388 )
2018-09-08 09:14:02 +02:00
Daniel Marjamäki
df9df70ba7
astyle formatting
...
[ci skip]
2018-09-08 09:07:59 +02:00
Paul Fultz II
cb03b9883f
Fix issue 8737: FP with identical inner condition due to followVar ( #1371 )
2018-09-07 20:16:38 +02:00
Paul Fultz II
5a2362b2a0
Fix issue 8738: Dont warn about multiconditions when value is known ( #1369 )
2018-09-07 15:02:34 +02:00
Paul Fultz II
f7e7e9bd3c
Fix issue 8736: Iterators to containers from different expressions (a.begin().x == b.begin().x) ( #1370 )
2018-09-07 07:08:02 +02:00
Paul Fultz II
2da958efb5
Fix issue 8722: Avoid duplicate messages due for followVar ( #1367 )
2018-09-06 06:55:36 +02:00
Paul Fultz II
b46e25c18e
Fix issue 8730: False positive: Opposite expression on both sides of && ( #1366 )
2018-09-05 18:07:01 +02:00
Simon Martin
1d85a78874
Ticket #8654 : Properly setup links for variadic template bases. ( #1357 )
2018-09-05 14:10:56 +02:00
Paul Fultz II
08f301a0de
Reenable followVar ( #1363 )
...
Reenable followVar
2018-09-05 05:53:33 +02:00
Daniel Marjamäki
c6d43506b6
ValueFlow: Fix FP in switch
2018-09-04 20:28:48 +02:00
Daniel Marjamäki
3a8bdad20a
Fixed #8232 (segmentation fault on valid C++ code in isOppositeCond())
2018-09-04 18:10:31 +02:00
Daniel Marjamäki
5afb755a3c
SymbolDatabase: Fix variable matching
2018-09-04 06:39:02 +02:00
Paul Fultz II
93be440f92
Fix issue 8709: crash with switch statement with followVar ( #1362 )
...
* Fix crash with switch statement
* Update comment
2018-09-03 19:54:14 +02:00
Paul Fultz II
0e5fabf4dc
Dont follow volatile variables ( #1365 )
2018-09-03 19:51:48 +02:00
Daniel Marjamäki
756c1d8de7
Fixed #8341 (error:iterators not correct)
2018-09-02 21:04:45 +02:00
IOBYTE
7224ee27d9
Fixed #8122 (simplifyTemplates: constructor outside template class not simplified properly) ( #1361 )
2018-09-02 17:49:13 +02:00
Daniel Marjamäki
cc402869a6
Fixed #8689 (False positive: containerOutOfBounds after function call)
2018-09-02 14:08:34 +02:00
Paul Fultz II
ab55b9eccb
Check for same expression in condition check to avoid duplicate messages ( #1359 )
2018-09-02 08:43:17 +02:00
IOBYTE
341dee4a07
Fixed #8725 (Template out of line function return type missing when instantiated.) ( #1360 )
2018-09-02 08:35:05 +02:00
Paul Fultz II
8353f94b93
Fix crashes in followVarExpression ( #1358 )
...
* Fix crashes in followVarExpression
* Add a regression test for issue 8717
* Skip reference declarations
2018-09-02 08:28:53 +02:00
Daniel Marjamäki
0a9d417266
add comments
2018-09-01 16:45:14 +02:00
Daniel Marjamäki
3cad3c901f
Another patch to temporarily disable the followVariableExpression
2018-09-01 11:39:21 +02:00
IOBYTE
508e8c234b
Fixed #8683 (Using deleted token with multiple template instantiations.) ( #1353 )
...
* Fixed #8683 (Using deleted token with multiple template instantiations.)
* Fixed #8321 (heap use after free: templatesimplifier)
* Add a flag to Token indicating that it has a pointer to it.
* Run dmake
* Fix one source of list pointers to deleted tokens.
Refactor TemplateSimplifier class to get access to template lists.
Remove many function parameters now that they are class variables.
Fix one source of list pointers to deleted tokens.
Add tests with no output to catch crashes.
* Run dmake again.
* Make 2 more functions private.
* Make requested changes.
* Missed one change request.
* Use TokenList rather than Tokenizer.
* Move TokenAndName constructor to cpp file so token.h is not needed in header file.
2018-09-01 11:26:10 +02:00
Daniel Marjamäki
12b7c9e597
Fix Cppcheck warning
2018-09-01 08:41:41 +02:00
Daniel Marjamäki
a331206b44
Temporarily disable followVariableExpressions(), there are problems that should be fixed.
2018-09-01 08:32:06 +02:00
Daniel Marjamäki
f388c77042
Fixed #8721 (Regression: False positive array index out of bounds)
2018-08-31 18:25:43 +02:00
Daniel Marjamäki
c7e5176284
Fixed #8061 (Problems with handling of --project argument)
2018-08-31 16:06:52 +02:00
Armin Müller
b9cd7368f5
Typos found by running "codespell" ( #1355 )
...
* Update astutils.cpp
* Update checksizeof.cpp
2018-08-30 19:51:39 +02:00
Daniel Marjamäki
7591616f43
Fixed #8710 (Update message duplicateExpression when operand is integer literal)
2018-08-30 18:28:34 +02:00
Daniel Marjamäki
27aae8d032
Fixed #8644 (crash (CheckBufferOverrun::checkGlobalAndLocalVariable): local function)
2018-08-30 10:04:07 +02:00
Daniel Marjamäki
6223204a06
Fixed #8708 (FP: Accessing an item in container that is empty)
2018-08-27 13:49:47 +02:00
Daniel Marjamäki
4378327c43
astyle formatting
...
[ci skip]
2018-08-27 13:48:46 +02:00
Paul Fultz II
fc135e1087
Check if member function modifies the variable ( #1350 )
...
* Check if member function modifies the variable
* Check for const pointer
* Add test for const condition
* Add more null checking
* Add todo assert for FN
2018-08-27 11:09:09 +02:00
Simon Martin
acb0b9f07e
Ticket #8679 : Add support for C++11 thread_local and GCC's (among others) __thread extension. ( #1351 )
2018-08-26 19:46:36 +02:00
Daniel Marjamäki
ad0ebd8f1a
astyle formatting
...
[ci skip]
2018-08-25 21:32:52 +02:00
Paul Fultz II
a5f4c5d0eb
Improve message for same expressions ( #1349 )
...
* Improve message for same expressions
* Update message
2018-08-25 14:25:31 +02:00
Daniel Marjamäki
4d0262fd0a
astyle formatting
...
[ci skip]
2018-08-23 06:06:58 +02:00
Kamil Dudka
0ca6ab1a71
ErrorLogger: add {cwe} ( #1341 )
2018-08-21 13:58:19 +02:00
Paul Fultz II
f79849f6ba
Diagnose mismatching iterators used together in operators ( #1343 )
...
* Diagnose mismatching iterators used together in operators
* Fix fp getting iterator expression in function call
2018-08-21 06:34:30 +02:00
Daniel Marjamäki
866d198756
Fixed #8697 (noreturn output stream)
2018-08-21 06:32:33 +02:00
Daniel Marjamäki
a30941d885
Refactoring; Use range for loops
2018-08-19 17:27:41 +02:00
Daniel Marjamäki
4d78a2e178
Fixed #7790 (Wrong order of <location> XML-elements for error duplInheritedMember)
2018-08-19 14:13:58 +02:00
Daniel Marjamäki
212af76367
astyle formatting
...
[ci skip]
2018-08-18 15:45:50 +02:00
Paul Fultz II
fd49112196
Avoid duplicates in the error path ( #1346 )
2018-08-18 07:32:30 +02:00
Daniel Marjamäki
43233e72b2
Fixed #8691 (False negative for uselessAssignmentArg)
2018-08-17 19:56:36 +02:00
Daniel Marjamäki
e442bc47b1
astyle formatting
...
[ci skip]
2018-08-17 19:55:21 +02:00
Kevin Kendzia
c5ebf26f9f
cppcheck.cpp: fix suppression of syntaxError ( #1333 )
...
* cppcheck.cpp: fix suppression of syntaxError
* test: add supression test for syntaxError while file read
2018-08-17 10:05:25 +02:00
Paul Fultz II
bbf876256c
Add error path to more diagnostics that rely on isSameExpression ( #1342 )
2018-08-17 09:25:07 +02:00
Sylvain Joubert
13617375df
missingOverride: False positive with cv-ref mismatch ( #1340 )
2018-08-17 08:42:22 +02:00
Konrad Grochowski
0e70c8a916
Added '-' and '.' to allowed chars in error ids for suppressions. ( #1338 )
...
Those chars are used for example in misra.py
2018-08-17 08:20:39 +02:00
tam do thanh
f33c09f1a7
Allow syntax "typedef 'typename' unsigned 'typename' (functon_name)()" ( #1334 )
...
* Allow syntax "typedef 'typename' unsigned 'typename' (functon_name)()" for some old libraries
https://trac.cppcheck.net/ticket/7792
* Unnecessary check of "tokOffset", match-function already checks if it is null
* add testcase ticket #7792 : simplifyTypedef124
2018-08-16 14:30:28 +02:00
Daniel Marjamäki
fc97a5b11c
Uninitalized variables: Fixed false positive
2018-08-15 18:04:36 +02:00
Daniel Marjamäki
2f834c3c3b
Fixed #8688 (False positive: containerOutOfBounds)
2018-08-13 21:27:29 +02:00
Paul Fultz II
c5154286da
Fix issue 8687: false positive with same expression ( #1336 )
2018-08-13 12:55:41 +02:00
Daniel Marjamäki
55ab842083
valueFlowSizeForward: Bailout when function calls modify the container size
2018-08-13 06:54:18 +02:00
Daniel Marjamäki
183345a939
valueFlowContainerSize: Fix FP when container size is changed
2018-08-12 22:23:19 +02:00
Daniel Marjamäki
7074eeb869
valueFlowContainerSize: assignment of string-like containers
2018-08-12 22:01:58 +02:00
Daniel Marjamäki
189ea5003a
valueFlowContainerSize: empty container variables
2018-08-12 14:41:00 +02:00
Daniel Marjamäki
be4ae66e36
Fix wrong message
2018-08-12 08:01:15 +02:00
Matthias Krüger
a9ae897f8c
checkstl: fix inconsistent-missing-override warning reported by clang.
...
Warning was:
lib/checkstl.h:57:18: warning: 'runChecks' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
virtual void runChecks(const Tokenizer *tokenizer, const Settings *settings, ErrorLogger *errorLogger) {
^
lib/check.h:67:18: note: overridden virtual function is here
virtual void runChecks(const Tokenizer *, const Settings *, ErrorLogger *) {
^
2018-08-11 21:33:44 +02:00
Daniel Marjamäki
0e30bdef9d
containerAccessOutOfBounds: Fix FPs for maps etc
2018-08-11 18:57:21 +02:00
Daniel Marjamäki
811a71aa06
valueFlowContainerSize: Handle guard logic
2018-08-11 15:08:54 +02:00
Daniel Marjamäki
f0c1d49abf
Fix Cppcheck warning
2018-08-11 14:45:12 +02:00
Daniel Marjamäki
6008bbdfb4
valueFlowContainerSize: Fix wrong value after condition if conditional code escapes
2018-08-11 13:49:42 +02:00
Daniel Marjamäki
1f427eda8f
CheckStl: rewrite and refactor out of bounds checker
2018-08-11 11:40:48 +02:00
Daniel Marjamäki
10461e5429
valueFlowContainerSize: forward analysis inside conditional code
2018-08-10 22:18:38 +02:00
Daniel Marjamäki
4a502a7f6b
valueFlowContainerSize: add simple forward analysis
2018-08-10 22:06:23 +02:00
Daniel Marjamäki
2b10e38eec
valueFlowContainerSize: handling of 'v.size() == 10'
2018-08-10 21:43:47 +02:00
Paul Fultz II
3947c23290
Fix issue 8369: False negative: Condition 'condition' is always true ( #1325 )
...
* Fix issue 8369: False negative: Condition 'condition' is always true
* Use simpleMatch
* Add iterator header
* Cleanup
* Remove unused variable
2018-08-10 18:05:23 +02:00
Daniel Marjamäki
3805af18a2
valueFlowContainerSize: Fix crash when container pointer is null
2018-08-10 12:53:16 +02:00
Daniel Marjamäki
f37434cd1d
valueFlowContainerReverse: Fix FPs when there is assignment
2018-08-10 12:26:53 +02:00
Daniel Marjamäki
907f81d059
ValueFlow: Improved analysis of container size
2018-08-10 11:53:56 +02:00
Daniel Marjamäki
81f54f7094
Fixed #8681 (ValueFlow: Container size)
2018-08-10 11:29:16 +02:00
Daniel Marjamäki
8032f64c15
Refactoring; Use range for loops
2018-08-10 10:04:10 +02:00
Daniel Marjamäki
b707f6e476
Refactoring; use range for loops
2018-08-10 06:47:18 +02:00
Daniel Marjamäki
223a116f24
The checksum in analyzer info files will now depend on the suppressions
2018-08-09 09:27:26 +02:00
Daniel Marjamäki
f2e7071922
Fix FP, conversion of char literal '\0' to boolean is not true
2018-08-08 19:04:10 +02:00
Daniel Marjamäki
1f1c44a04f
Fixed #8677 (False positive: unused method)
2018-08-08 11:31:35 +02:00
Paul Fultz II
80290a15e0
Fix FP with duplicate assign ( #1330 )
2018-08-08 08:31:31 +02:00
Daniel Marjamäki
c3a44ce56b
astyle formatting
...
[ci skip]
2018-08-07 18:06:51 +02:00
Daniel Marjamäki
78df7f98dd
Fixed #8674 (False positive: Method that returns const should not be const)
2018-08-07 18:06:14 +02:00
Paul Fultz II
f603b529df
Fix issue 8413: Condition is always false 'i=expr; if (i != expr) {}' ( #1295 )
...
* Follow variables when comparing same expression
* Remove assert include
* Dont follow function arguments
* Improve the checking to check more cases
* Add more tests
* Check if the variable is used inside a loop
* Follow both variables
* Only skip loops when variable is modified in scope
* Fix FP when followed variable is modified
* Dont follow arrays
* Skip pointer indirection
* Make recursive
* Improve checking more variables
* Fix test with sizeof
* Skip following operators
* Fix test when using sizeof
* Dont check every step
* Use early returns
* Update test to use a loop instead of conditional
* Add static
* Check variables are global
* Check local variables in another scope
* Fix issue with const pointers
* Distinguish between pointer indirection and multiply
* Use simple match
* Prevent crash with uniform initialization
* Use unary op and ast to detect pointer indirection
* Expand error message when expression do not match exactly
* Add errorpath to issameexpression
* Revert "Clarify warning message for 'Same expression on both sides of operator'"
This reverts commit 0e491b41a8
.
* Check if the tokens are the same
* Report the operator and not the expressions
2018-08-07 09:32:16 +02:00
Daniel Marjamäki
1b933f4dd1
astyle formatting
...
[ci skip]
2018-08-05 22:40:21 +02:00
Paul Fultz II
b839ad60dd
Fix issue 6856: add checks in isOppositeCond when using == and < or > ( #1298 )
...
* Fix issue 6856: add checks in isOppositeCond when using == and < or >
* Move tests to testcondition
* Fix some more tests
* Fix test messages
* Remove the float check
2018-08-05 22:39:40 +02:00
Daniel Marjamäki
ddbe4b89b5
Renamed --debug to --debug-simplified
2018-08-05 11:19:20 +02:00
Daniel Marjamäki
bcdd58de0b
astyle formatting
...
[ci skip]
2018-08-05 10:48:28 +02:00
Daniel Marjamäki
0e491b41a8
Clarify warning message for 'Same expression on both sides of operator'
2018-08-05 10:48:02 +02:00
Paul Fultz II
ed197f235a
Fix issue 4693: Diagnostic when using the same iterators to an algorithm ( #1326 )
...
* Fix issue 4693: Diagnostic when using the same iterators to an algorithm
* Update classinfo
2018-08-05 09:10:54 +02:00
rikardfalkeborn
710d7ce015
Add checks of log2 and log1p range ( #1324 )
...
* Add tests for log10{,f,l} valid arguments
* Add log2{,f,l} to checkfunctions
* Add log1p{,f,l} to checkfunctions
* checkfunctions: Simplify check for log function limit out of range
The conditions for negative and non-negative int and float were
identical so the call to isNegative can be removed and the if-statements
be simplified.
2018-08-03 12:14:39 +02:00
Daniel Marjamäki
0a66f5c4f9
astyle formatting
...
[ci skip]
2018-07-26 22:24:00 +02:00
Daniel Marjamäki
e2a4b1706c
Refactoring CheckStl::mismatchingContainers; Use AST
2018-07-26 22:23:37 +02:00
Daniel Marjamäki
86721f5b91
small refactorings
2018-07-26 22:08:05 +02:00
Daniel Marjamäki
d471c27502
astyle formatting
...
[ci skip]
2018-07-26 22:03:49 +02:00
Paul Fultz II
0d35a96594
Improve checking of mismatch iterators ( #1293 )
2018-07-26 22:00:48 +02:00
Daniel Marjamäki
54e2726bf3
Fixed #8636 (Misleading verbose message if virtual method called from destructor)
2018-07-26 09:16:17 +02:00
Daniel Marjamäki
c666f74755
astyle formatting
...
[ci skip]
2018-07-25 23:02:16 +02:00
Paul Fultz II
f093692551
ValueFlow: Set values in else branch even when the first branch modifies the value ( #1309 )
...
* Set values in else branch even when the first branch modifies the value
* Move tests
* Add check for goto
* Remvoe todo
* Also check scope is noreturn
* Use isEscapeScope when variables are changed
2018-07-25 22:59:54 +02:00
firewave
01ceb9bae7
fixed issue 8661: Misleading error message when compilation database is not recognized
2018-07-25 16:26:25 +02:00
Daniel Marjamäki
58c91c4645
Revert "Refactoring endsWith utility function"
...
This reverts commit d300d1f61b
.
2018-07-25 16:14:43 +02:00
Daniel Marjamäki
f9a5a114bb
astyle formatting
...
[ci skip]
2018-07-25 07:44:06 +02:00
Daniel Marjamäki
d300d1f61b
Refactoring endsWith utility function
2018-07-25 07:43:50 +02:00
Paul Fultz II
9895ea5ff2
Fix issue 470: Condition is always true or false on logical operators ( #1294 )
...
* Fix issue 470: Condition is always true or false on logical operators
* Dont warn on literals
* Compute logical operators using valueflow
* Fix FP when using literals
* Always warn on subconditions that are always true
* Use percent matches first
* Add test for logical operators
* Check if parent is null
2018-07-23 08:51:59 +02:00
lordylike
12e58c8521
fix ticket 8570: passedByValue with member initializer list and std::move ( #1316 )
...
* fix ticket 8570
allow member initializer list variables that are moved to be non-const
* review feedback
* replace tabs with spaces in test code
2018-07-22 15:01:18 +02:00
Daniel Marjamäki
77b653bf94
Clarify warnings when char literals are converted to bool in conditions
2018-07-21 18:40:06 +02:00
Daniel Marjamäki
417670d947
Clarify code with continue
2018-07-20 21:44:23 +02:00
rikardfalkeborn
30a8d953e3
Move sqrt{,f,l} argument checks to cfg file ( #1313 )
2018-07-20 20:56:39 +02:00
Daniel Marjamäki
7c4820e047
Rename Library::isargvalid()
2018-07-15 23:05:48 +02:00
rikardfalkeborn
491ee577c6
Support floats in valid config ( #1297 )
...
* Add tests for invalid ranges
* Refactor loadLibErrors
This reduces the amount of code slightly and will simplify adding
more tests.
* Handle empty valid field
Before this change, the sequence <valid></valid> in a config file would
result in a segmentation fault. Now an empty field results in the error
message:
cppcheck: Failed to load library configuration file 'mycfg.cfg'. Bad attribute value '""'
* Add support for valid for floating point arguments
Previously, it was not possible to add valid ranges to floating point
arguments since it only handled integers. This made ranges not work well
for floating point arguments since arguments were cast to integers
before the ranges were handled.
Fix this by using doubles instead of integers if the argument is a float.
Add some tests for this and make sure errors are printed with enough
precision (somewhat arbitrarily chosen).
Note that it is still only possible to add integer ranges (i.e. -1:1).
* Add support for floats in configuration valid range
Now that it is possible to handle decimal arguments, there is no reason
to not allow non-integer ranges. Take care to not allow broken
configurations.
* Move check to within if-clause
* Move asin{,f,l} and acos{,f,l} input checks to config file
2018-07-15 22:47:56 +02:00
Daniel Marjamäki
39857220ce
Refactoring: Use range for loops
2018-07-15 15:08:35 +02:00
Daniel Marjamäki
cc5f00c252
Refactoring; use range for loops
2018-07-15 15:03:08 +02:00
Daniel Marjamäki
518dd8bfa3
Refactoring: Use range for loops
2018-07-15 14:51:33 +02:00
Daniel Marjamäki
1c4fb47582
astyle formatting
...
[ci skip]
2018-07-15 14:45:33 +02:00
Daniel Marjamäki
faea8e1c02
Refactoring: Use range for loops
2018-07-15 14:45:15 +02:00
Paul Fultz II
5d1fdf7958
Fix issue 7904: Handle double nots in isSameExpression ( #1305 )
...
* Fix issue 7904: Handle double nots in isSameExpression
* Skip checking double nots in assignments
* Use ast to check for double not
2018-07-15 11:30:02 +02:00
Daniel Marjamäki
60485df762
Refactoring; Use range for loops
2018-07-14 22:49:31 +02:00
Daniel Marjamäki
991300ac54
Clarify code with Token::isUnaryOp()
2018-07-14 22:36:08 +02:00
Daniel Marjamäki
1e824330c0
Refactoring: Use range for loops
2018-07-14 22:26:22 +02:00
Daniel Marjamäki
0f3cc56c59
Refactoring: Use range for loops
2018-07-14 13:19:41 +02:00
Daniel Marjamäki
d603a811bb
Clarify code with Token::hasKnownValue()
2018-07-14 13:09:53 +02:00
Daniel Marjamäki
d00e522856
Clarify the code with Token::isUnaryOp and Token::isBinaryOp
2018-07-14 13:01:24 +02:00
Daniel Marjamäki
c9a2071420
Refactoring: Use range for loop
2018-07-14 12:28:57 +02:00
Daniel Marjamäki
0c84475aac
Clarify code with Token::isUnaryOp()
2018-07-14 10:26:22 +02:00
Daniel Marjamäki
449c48f6a7
Refactoring: Use range for loops
2018-07-14 10:23:41 +02:00
Daniel Marjamäki
c7b787888a
Refactoring: Use range for loops
2018-07-14 10:09:12 +02:00
Daniel Marjamäki
7dda8e2a2d
Refactoring: Use range for loops
2018-07-14 10:02:32 +02:00
Daniel Marjamäki
eeda082a2f
Refactoring: use range for loops
2018-07-14 09:54:52 +02:00
Daniel Marjamäki
bb36adb432
Refactoring; Use range for loops
2018-07-14 09:49:03 +02:00
Daniel Marjamäki
c60763bc14
Refactoring; Use range for loop
2018-07-14 08:18:10 +02:00
Daniel Marjamäki
5b1d96b346
Clarify code with Token::isUnaryOp()
2018-07-14 08:04:08 +02:00
Daniel Marjamäki
4429ee55c3
Refactoring; Use range for loop
2018-07-14 07:55:18 +02:00
Daniel Marjamäki
1dd647ae84
Refactoring; Use range for loop
2018-07-14 07:49:04 +02:00
Daniel Marjamäki
d759015d99
Refactoring; Use range for loops
2018-07-13 23:51:22 +02:00
Daniel Marjamäki
594e07acaa
Refactoring; Use range for loop
2018-07-13 23:45:34 +02:00
Daniel Marjamäki
58ac8a9982
Refactoring; Use range for loops
2018-07-13 23:43:03 +02:00
Daniel Marjamäki
ed76f06ca7
Refactoring; use range for loop
2018-07-13 23:32:49 +02:00
Daniel Marjamäki
b2403c36cd
Refactoring; Use Token::isUnaryOp() to clarify code
2018-07-13 23:17:24 +02:00
Daniel Marjamäki
54cfdb731e
Refactoring; Use Token::isUnaryOp() to clarify code
2018-07-13 23:12:20 +02:00
Daniel Marjamäki
2c90a83695
Refactoring; Use Token::isBinaryOp() to clarify code, use early continue in loop
2018-07-13 23:06:45 +02:00
Daniel Marjamäki
a4fdef8d9e
Refactoring; Use Token::isUnaryOp() to clarify code
2018-07-13 23:02:52 +02:00
Daniel Marjamäki
5712366a8f
refactoring; use range for loops
2018-07-13 22:56:20 +02:00
Daniel Marjamäki
93903d96c4
Refactoring, use Token::isUnaryOp and Token::isBinaryOp
2018-07-13 18:52:03 +02:00
Daniel Marjamäki
435888f82e
Refactoring; use range for loop
2018-07-13 16:57:17 +02:00
Daniel Marjamäki
4d52949be6
Refactoring: Use ranged for loop
2018-07-13 16:50:12 +02:00
Daniel Marjamäki
e552737028
Refactoring: Use range for loop
2018-07-13 16:46:29 +02:00
Daniel Marjamäki
2c49732eb8
Added Token::isUnaryOp()
2018-07-13 16:40:32 +02:00
Daniel Marjamäki
2963522d5f
Refactoring: Use ranged for loops
2018-07-13 16:40:15 +02:00
Daniel Marjamäki
2b125e013a
Code refactoring, no functional change intended
2018-07-13 09:20:53 +02:00
Paul Fultz II
42f075c3fa
Skip literals for always true/false ( #1304 )
2018-07-12 23:06:47 +02:00
Daniel Marjamäki
b398398dec
Fixed #8360 (false positive "Ineffective call of function 'empty()'")
2018-07-10 22:58:02 +02:00
umanamente
44416862c0
Fixed Visual Studio Natvis file after recent refactoring ( #1299 )
2018-07-09 08:27:26 +02:00
Daniel Marjamäki
03faa25d12
Conditions: Better handling of function calls
2018-07-08 15:58:04 +02:00
Daniel Marjamäki
24dd4c9c26
Restore code in checkVariableScope. Fixes false negative
2018-07-01 22:31:45 +02:00
Daniel Marjamäki
4c6270f9b2
Refactoring: use range for loop
2018-06-30 15:34:48 +02:00
Daniel Marjamäki
60ac463a79
CheckClass: Restore a few warnings about member initialization of classes
2018-06-29 22:54:12 +02:00
Daniel Marjamäki
61c56eda44
Tweak the CheckClass::constructors() check
2018-06-27 14:02:57 +02:00
Daniel Marjamäki
79664abf2a
Refactoring: Use range for loop
2018-06-27 09:14:03 +02:00
Daniel Marjamäki
10e693a8c3
Revert "SymbolDatabase: Improved lookup of function calls"
...
This reverts commit 3c87d60d5d
.
2018-06-26 23:14:12 +02:00
Daniel Marjamäki
3c87d60d5d
SymbolDatabase: Improved lookup of function calls
2018-06-26 22:12:12 +02:00
Daniel Marjamäki
c583fb9186
Revert "SymbolDatabase: Improved lookup of function calls"
...
This reverts commit e4a70f87e6
.
2018-06-26 13:05:33 +02:00
Daniel Marjamäki
e4a70f87e6
SymbolDatabase: Improved lookup of function calls
2018-06-26 11:38:45 +02:00
PKEuS
009287f912
Set version to 1.84.99/1.85 dev
2018-06-25 21:03:43 +02:00
Daniel Marjamäki
3155f15325
CheckClass: Use Variable::valueType()
2018-06-24 16:14:11 +02:00
Daniel Marjamäki
9fab15bb53
CheckClass: Use Variable::valueType() instead of Variable::typeStartToken
2018-06-24 15:41:16 +02:00
Daniel Marjamäki
cb48aae594
buffer overrun: Remove bailout. There is no test case and I fail to produce false positives.
2018-06-24 09:50:55 +02:00
Daniel Marjamäki
d0819e4792
Reuse isVariableChanged() in auto variables
2018-06-24 08:55:23 +02:00
Daniel Marjamäki
cde63c7573
Use Variable::valueType instead of Variable::typeStartToken in auto variables
2018-06-24 08:25:19 +02:00
Daniel Marjamäki
2beeca3ca2
Refactoring; use early continue
2018-06-23 23:26:37 +02:00
Daniel Marjamäki
655a8b21b6
Fix false positive 'passedByValue' when address of argument is used
2018-06-23 23:25:06 +02:00
Daniel Marjamäki
697aee143f
CheckOther: Use Variable::valueType() instead of Variable::typeStartToken
2018-06-23 16:52:40 +02:00
Daniel Marjamäki
fc78530b3f
CheckOther: Use Variable::valueType() instead of Variable::typeStartToken
2018-06-23 16:49:26 +02:00
Daniel Marjamäki
2a8296879c
CheckOther: Use Variable::valueType() instead of Variable::typeStartToken
2018-06-23 16:42:36 +02:00
Daniel Marjamäki
ee335e5151
Fix compiler error
2018-06-23 16:07:02 +02:00
Daniel Marjamäki
911020f601
Refactoring, use range for loop
2018-06-23 15:58:44 +02:00
Daniel Marjamäki
d811a07aa3
CheckOther: Use Variable::valueType() instead of typeStartToken etc
2018-06-22 23:04:36 +02:00
Daniel Marjamäki
d0614b9b36
varScope: Fix false negatives for references
2018-06-22 22:51:03 +02:00
Daniel Marjamäki
d90c38802f
Fixed Cppcheck warnings (variable scope can be reduced)
2018-06-21 06:54:56 +02:00
Daniel Marjamäki
439d4a4900
Use Variable::valueType() instead of Variable::typeStartToken()
2018-06-20 19:08:09 +02:00
Daniel Marjamäki
10fc070f44
SymbolDatabase: Better handling of type aliases in ValueType
2018-06-20 14:49:55 +02:00
Daniel Marjamäki
b62c562a89
Try to make Travis happy
2018-06-20 14:13:04 +02:00
Sebastian
0b65a52224
Add some missing errors to --errorlist output. ( #1292 )
...
Partly fixes https://trac.cppcheck.net/ticket/7772 .
2018-06-20 10:43:13 +02:00
Daniel Marjamäki
929725f3aa
Code cleanup
2018-06-20 10:39:21 +02:00
Daniel Marjamäki
b4cb2505c3
SymbolDatabase: Add Variable::valueType(). First step to reuse ValueType handling in Variable
2018-06-20 10:00:15 +02:00
Daniel Marjamäki
eb978ee192
Refactoring: delete assignment operator
2018-06-19 14:00:50 +02:00
Daniel Marjamäki
9edcae97fc
Fixed #8578 (Argument scope as global)
2018-06-19 08:50:32 +02:00
Daniel Marjamäki
13cf93a322
Rename private variable maxtime
2018-06-18 09:49:00 +02:00
Daniel Marjamäki
86872f81ba
Refactorings in CheckMemoryLeak
2018-06-18 09:40:27 +02:00
Daniel Marjamäki
4ba9437bd5
Rename private member variables
2018-06-17 23:09:41 +02:00
Daniel Marjamäki
96fc8efb4b
Refactoring: Use C++11 '=delete' to delete methods
2018-06-17 19:36:09 +02:00
Daniel Marjamäki
9717a5afad
Rename private member variables
2018-06-17 19:24:40 +02:00
Daniel Marjamäki
e962f57a99
Rename private member variables
2018-06-17 19:20:07 +02:00
Daniel Marjamäki
a25461919c
Rename private member variables
2018-06-17 19:04:06 +02:00
Daniel Marjamäki
2a495184d2
Rename private member variables
2018-06-17 18:58:27 +02:00
Daniel Marjamäki
965fcf9303
Rename private member variables
2018-06-17 18:55:41 +02:00
Daniel Marjamäki
e90c04cff9
Rename private member variable
2018-06-17 18:43:54 +02:00
Daniel Marjamäki
19cf0d1fa4
Refactoring; use range for loop
2018-06-17 18:37:40 +02:00
Daniel Marjamäki
ad4ce84cf7
Rename private member variables
2018-06-17 17:20:16 +02:00
orbitcowboy
0b74a90e75
symboldatabase: removed duplicate keywords in C++-keyword list.
2018-06-17 17:05:36 +02:00
Daniel Marjamäki
aa17b1f79a
Rename private member variables
2018-06-17 17:04:34 +02:00
Daniel Marjamäki
610b26bfbc
Rename private member _platform_types
2018-06-17 16:58:28 +02:00
Daniel Marjamäki
074177fc6e
Rename private member variables
2018-06-17 16:55:02 +02:00
Pavel Pimenov
c25ab16f5d
V817 It is more efficient to seek '\t' character rather than a string. errorlogger.cpp 448 ( #1290 )
...
V817 It is more efficient to seek '}' character rather than a string. errorlogger.cpp 484
V817 It is more efficient to seek '\r' character rather than a string. errorlogger.cpp 497
V817 It is more efficient to seek '\r' character rather than a string. errorlogger.cpp 528
V817 It is more efficient to seek ';' character rather than a string. suppressions.cpp 187
V817 It is more efficient to seek ';' character rather than a string. suppressions.cpp 188
full log: http://www.fly-server.ru/pvs-studio/cppcheck/
2018-06-17 16:39:28 +02:00
Daniel Marjamäki
dbf89856c0
Renamed Library private member variables
2018-06-17 16:39:10 +02:00
Daniel Marjamäki
fb8e970419
Rename _alloc
2018-06-17 16:32:08 +02:00
Daniel Marjamäki
fa8911a7d2
Renamed _suffixes
2018-06-17 13:47:18 +02:00
Daniel Marjamäki
153838c254
Renamed _prefixes
2018-06-17 13:46:24 +02:00
Daniel Marjamäki
9f191cd2dc
Renamed _blocks
2018-06-17 13:45:31 +02:00
Daniel Marjamäki
fea58e5e54
Renamed _offset
2018-06-17 13:44:56 +02:00
Daniel Marjamäki
743dcff036
Renamed _start and _end
2018-06-17 13:44:10 +02:00
Daniel Marjamäki
0ca96f2a7d
Renamed private member file0
2018-06-17 09:06:16 +02:00
Daniel Marjamäki
517d8f9684
Renamed private member tokenlists to mTokenLists
2018-06-17 08:58:56 +02:00
Daniel Marjamäki
de0e22a1fb
Renamed private member directives
2018-06-17 08:45:45 +02:00
Daniel Marjamäki
c102638970
astyle formatting
2018-06-17 08:45:26 +02:00
Daniel Marjamäki
f8e96307f7
Refactoring, use range for loop
2018-06-17 08:40:25 +02:00
Daniel Marjamäki
87b21f3e57
Renamed _terminated
2018-06-17 08:22:53 +02:00
Daniel Marjamäki
bea6b32157
Renamed _enabled
2018-06-17 08:21:05 +02:00
Daniel Marjamäki
37bcec8804
Renamed _fileName
2018-06-17 08:19:10 +02:00
Daniel Marjamäki
8d66eecf47
Renamed _suppressions to mSuppressions
2018-06-17 08:16:37 +02:00
Daniel Marjamäki
7517371203
Renamed private member analyzerInfoFile
2018-06-17 08:11:48 +02:00
Daniel Marjamäki
9085373494
Rename private member fout
2018-06-17 08:09:59 +02:00
Daniel Marjamäki
b12b7f93e4
Rename _symbolNames
2018-06-17 07:59:48 +02:00
Daniel Marjamäki
d48876c3be
Renamed _verboseMessage
2018-06-17 07:55:47 +02:00
Daniel Marjamäki
8d00c7ca81
Renamed _shortMessage
2018-06-17 07:54:50 +02:00
Daniel Marjamäki
e8496f4fb5
Renamed _file and _info
2018-06-17 07:52:59 +02:00
Daniel Marjamäki
fe0bd8ff6c
Renamed exitcode to mExitCode
2018-06-17 07:43:25 +02:00
Daniel Marjamäki
6ff6f0ae45
Renamed cfg to mCurrentConfig
2018-06-17 07:40:13 +02:00
Daniel Marjamäki
cb0bea1749
Renamed _simplify
2018-06-17 07:37:10 +02:00
Daniel Marjamäki
b90d1bc020
Renamed member fileInfo to mFileInfo
2018-06-17 07:36:05 +02:00
Daniel Marjamäki
c5e0576961
Renamed analyzerInformation
2018-06-17 07:31:34 +02:00
Daniel Marjamäki
54ba0e58c1
Renamed _useGlobalSuppressions
2018-06-17 07:29:07 +02:00
Daniel Marjamäki
b992b4a4f0
Renamed _errorList
2018-06-16 23:31:16 +02:00
Daniel Marjamäki
d9aeeb1d09
Renamed private member cpp to mIsCpp
2018-06-16 23:30:00 +02:00
Daniel Marjamäki
306b2a9810
Renamed private member defaultSignedness
2018-06-16 23:25:35 +02:00
Daniel Marjamäki
678e3271d4
Rename private flags member to mFlags
2018-06-16 23:11:45 +02:00
Daniel Marjamäki
ac28ae5788
Renamed Token::_str
2018-06-16 23:03:15 +02:00
Daniel Marjamäki
33e718d59e
Rename Timer::_str
2018-06-16 22:49:51 +02:00
Daniel Marjamäki
0e8a60f1ad
Renamed _start
2018-06-16 22:43:25 +02:00
Daniel Marjamäki
ce78245f38
Renamed _showtimeMode
2018-06-16 22:40:11 +02:00
Daniel Marjamäki
4b9c6a11a2
Renamed _stopped to mStopped
2018-06-16 22:34:50 +02:00
Daniel Marjamäki
4f34a5145f
Renamed _clocks
2018-06-16 22:25:25 +02:00
Daniel Marjamäki
94c7e28835
Renamed _numberOfResults
2018-06-16 22:24:44 +02:00
Daniel Marjamäki
66785c238a
Renamed _timerResults
2018-06-16 22:14:59 +02:00
Daniel Marjamäki
63e6d35cb6
Renamed _unnamedCount to mUnnamedCount
2018-06-16 22:09:18 +02:00
Daniel Marjamäki
ef534c2d0d
Renamed _codeWithTemplates
2018-06-16 22:03:04 +02:00
Daniel Marjamäki
5dc29a9a16
Renamed _configuration to mConfiguration
2018-06-16 21:57:48 +02:00
Daniel Marjamäki
598a984071
Renamed _typeSize to mTypeSize
2018-06-16 21:56:05 +02:00
Daniel Marjamäki
5e43366126
Rename members
2018-06-16 21:52:29 +02:00
Daniel Marjamäki
237314fb51
Rename _values to mValues
2018-06-16 21:45:53 +02:00
Daniel Marjamäki
0452c5a4e4
Renamed _bits to mBits
2018-06-16 21:43:44 +02:00
Daniel Marjamäki
d468eca772
Renamed _valuetype to mValueType
2018-06-16 21:42:40 +02:00
Daniel Marjamäki
82169b6247
Renamed _originalName to mOriginalName
2018-06-16 21:40:25 +02:00
Daniel Marjamäki
15f7c26706
Renamed _blankTypes
2018-06-16 20:33:07 +02:00
Daniel Marjamäki
56126d6e2d
Renamed _variableList to mVariableList
2018-06-16 20:31:47 +02:00
Daniel Marjamäki
759097301b
Rename _link to mLink
2018-06-16 20:30:09 +02:00
Daniel Marjamäki
e8a00a38ac
Rename _scope to mScope
2018-06-16 20:29:17 +02:00
Daniel Marjamäki
7314fc7557
Rename _enumerator to mEnumerator
2018-06-16 20:27:49 +02:00
Daniel Marjamäki
3ca8372b37
Rename _variable to mVariable
2018-06-16 20:27:13 +02:00
Daniel Marjamäki
964841ba25
Rename _function to mFunction
2018-06-16 20:26:43 +02:00
Daniel Marjamäki
78974e9267
Rename _type to mType
2018-06-16 20:25:54 +02:00
Daniel Marjamäki
fc6f17ed87
Rename _dimensions to mDimensions
2018-06-16 20:23:58 +02:00
Daniel Marjamäki
31f137f24d
Renamed _fileIndex, _linenr, _col
2018-06-16 16:43:54 +02:00
Daniel Marjamäki
a6e4663445
Renamed _progressValue to mProgressValue
2018-06-16 16:41:25 +02:00
Daniel Marjamäki
aeea2e7427
Renamed _tokType to mTokType
2018-06-16 16:40:02 +02:00
Daniel Marjamäki
8e2b18a75a
Rename _varId to mVarId
2018-06-16 16:38:50 +02:00
Daniel Marjamäki
23eb98d2ca
Renamed Check::_name
2018-06-16 16:31:07 +02:00
Daniel Marjamäki
807fbfd318
Renamed _isC and _isCPP
2018-06-16 16:28:03 +02:00
Daniel Marjamäki
d81fe83ca6
renamed _symbolDatabase to mSymbolDatabase
2018-06-16 16:25:27 +02:00
Daniel Marjamäki
d08b6e02b7
renamed _files to mFiles
2018-06-16 16:23:55 +02:00
Daniel Marjamäki
cc521bef99
renamed _tokensFrontBack to mTokensFrontBack
2018-06-16 16:22:35 +02:00