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
Daniel Marjamäki
26d58ddbb9
rename _astOperand1, _astOperand2, _astParent
2018-06-16 16:18:50 +02:00
Daniel Marjamäki
435aa70c3d
rename _previous and _next
2018-06-16 16:16:55 +02:00
Daniel Marjamäki
363f4ca939
rename _flags to mFlags
2018-06-16 16:14:34 +02:00
Daniel Marjamäki
67b111f11e
SymbolDatabase: rename _constness to mConstness
2018-06-16 16:13:26 +02:00
Daniel Marjamäki
5154eb10c6
SymbolDatabase: rename _access
2018-06-16 16:12:27 +02:00
Daniel Marjamäki
7dfd4f61a1
SymbolDatabase: rename _index
2018-06-16 16:11:40 +02:00
Daniel Marjamäki
79ffe1d4fc
Rename _tokenizer, _settings, _errorLogger
2018-06-16 16:10:28 +02:00
Daniel Marjamäki
8209c4aebd
SymbolDatabase: rename _start and _end
2018-06-16 16:03:36 +02:00
Daniel Marjamäki
311454669f
SymbolDatabase: rename _name
2018-06-16 15:57:16 +02:00
Daniel Marjamäki
593f7eee38
Fixed #8624 (Crash below CheckOther::checkDuplicateExpression)
2018-06-14 22:39:26 +02:00
Daniel Marjamäki
a21c05edfe
1.84: Set versions
...
[ci skip]
2018-06-10 22:21:57 +02:00
Daniel Marjamäki
45379a3aa6
Updated copyright year for modified files
...
[ci skip]
2018-06-10 22:07:21 +02:00
Daniel Marjamäki
3029606342
CheckClass: Fix Cppcheck warning about mismatching function parameters
2018-06-10 22:04:22 +02:00
Daniel Marjamäki
b9d03d0e23
astyle formatting
...
[ci skip]
2018-06-10 21:59:24 +02:00
Paul Fultz II
daacf27c2e
Fix false positive from issue 8612 ( #1285 )
2018-06-10 00:05:23 +02:00
Daniel Marjamäki
03b2e0eee7
inline suppressions: treat arithmetic operators as start-of-comment
2018-06-09 22:50:51 +02:00
amai2012
db7d267c02
Refactoring: Add _ prefix to Token member variables ( #1280 )
2018-06-09 08:14:24 +02:00
Paul Fultz II
8d53bcfd63
Fix FP when using non-const members and also check return type of function ( #1283 )
2018-06-09 08:05:19 +02:00
Daniel Marjamäki
84f0a18053
passedByReference: avoid false positives for std::pair
2018-06-08 10:19:02 +02:00
Daniel Marjamäki
44c78d1770
passedByReference: avoid false positives for std::function
2018-06-08 08:40:14 +02:00
Daniel Marjamäki
de09c117bf
Fixed #8618 (False positive: shared_ptr is passed by reference by intention)
2018-06-07 22:39:21 +02:00
amai2012
f947b3b025
Fix some doxygen warnings
2018-06-07 08:33:32 +02:00
Daniel Marjamäki
1abc9008d8
Fixed #8573 (FP noCopyConstructor - derive from noncopyable class)
2018-06-06 16:02:25 +02:00
Sebastian
7c9b6d9bb0
checkother.cpp: Fix typo in symbol placeholder in error message. ( #1276 )
2018-06-05 10:24:19 +02:00
Daniel Marjamäki
b9c1308a81
Fixed #8575 (false positive: longCastAssign)
2018-06-04 22:51:21 +02:00
Daniel Marjamäki
7b106c067a
Fixed #8603 (SymbolDatabase: 2 scopes with same function)
2018-06-03 23:14:24 +02:00
Daniel Marjamäki
df9b243227
Modernize: use ranged for loops in CheckNullPointer
2018-06-03 09:27:18 +02:00
Matthias Krüger
0771a81969
Revert "tokenlist::iscast(): save a few pointer dereferences."
...
This reverts commit e187fdb696
.
2018-06-02 15:57:56 +02:00
rebnridgway
d3b231214d
TemplateSimplifier optimisation. measured time improvement for cryptopp/test.cpp is ~8.4s => ~8.35s
2018-06-02 13:49:14 +02:00
Matthias Krüger
558a2f0cc7
SymbolDatabase::createSymbolDatabaseFindAllScopes(): hoist _tokenizer->isC(PP) dereference out of loop.
2018-06-02 13:38:15 +02:00
Matthias Krüger
e187fdb696
tokenlist::iscast(): save a few pointer dereferences.
2018-06-02 13:19:22 +02:00
Daniel Marjamäki
7163210f72
Fixed #8605 (Segmentation fault below TemplateSimplifier::simplifyCalculations)
2018-06-01 23:03:53 +02:00
Matthias Krüger
be6c273e6b
CheckBufferOverrun::checkScope_inner(): save a few pointer derefernces (NFC).
2018-05-31 12:28:34 +02:00
Daniel Marjamäki
02f9ab38b4
simplifyCalculations: Made this function ~30% faster when analysing lib/tokenize.cpp
2018-05-31 06:36:59 +02:00
amai2012
8d55d361ae
#8602 Template default parameter without name yields syntax error
2018-05-30 17:09:31 +02:00
IOBYTE
7681bbf227
Fixed #8146 (false positive: enum initialized using class member initializer syntax in struct in struct) ( #1270 )
2018-05-30 15:40:16 +02:00
Daniel Marjamäki
4c9bde277a
Refactoring: Use ranged for in TemplateSimplifier
2018-05-30 14:40:38 +02:00
Daniel Marjamäki
f7148cbaa9
Refactoring: Renamed iterator
2018-05-30 14:33:55 +02:00
Daniel Marjamäki
cc77a6aa62
Code refactoring
2018-05-29 22:41:37 +02:00
IOBYTE
3982c81394
Add support for C++ attribute nodiscard for functions. ( #1269 )
2018-05-29 21:43:56 +02:00
Daniel Marjamäki
14e60210c9
Optimize Tokenizer::setVarIdPass1
2018-05-29 18:41:05 +02:00
orbitcowboy
5861a3844a
Running astyle [ci skip].
2018-05-29 17:32:55 +02:00
orbitcowboy
de66eedd54
Improved const correctness of local variables.
2018-05-29 17:33:43 +02:00
Daniel Marjamäki
7d4a80fbd2
astyle formatting
...
[ci skip]
2018-05-29 16:30:33 +02:00
orbitcowboy
33777c5b72
Improved const correcntess of local variables.
2018-05-29 13:24:48 +02:00
orbitcowboy
b94e5ab9cb
Fixed VS2017 C4101: unreferenced local variable.
2018-05-29 13:18:07 +02:00
orbitcowboy
bf20aa2330
token.h: Added const-qualifiers to some functions.
2018-05-29 11:46:07 +02:00
Daniel Marjamäki
d7dfa29864
Preprocessor: only throw errors upon request.
2018-05-28 14:11:59 +02:00
Daniel Marjamäki
c2c43ce8a7
Code cleanup, use '= delete'
2018-05-28 12:44:18 +02:00
Daniel Marjamäki
02c8a1d61c
Tokenizer::setVarIdPass1 optimization
2018-05-28 11:32:47 +02:00
IOBYTE
36f7585798
Fixed #8600 (false-positive/regression: confusion between copy constructors of internal classes and lack of explicit keyword) ( #1266 )
2018-05-27 10:53:34 +02:00
orbitcowboy
1914d5e630
Running astlye
2018-05-25 08:35:37 +02:00
rebnridgway
42a65c5160
Fix crash bug #8579 ( #1238 )
...
* Added declaration for deletePrevious function
* Added definition for deletePrevious function
* Fixed crash from deleteThis invalidating pointers
The crash was caused by deleteThis() invalidating the pointer to a constant variable usage. This happened when a usage followed an assignment. This fixes bug #8579 .
* Added tokensFront to match tokensBack
This means deletePrevious can set the list's front if necessary.
* Initialised tokensFront in appropriate places
* Switched to using default Token constructor
* Switched to using Token default constructor
* Switched to using default constructor for Token
* Added missing argument to Token constructor
* Changed to use default constructor for Tokens
* Switched to using default constructor for Tokens
* Switched to using default constructor for Token
* Added new test for deleting front Token
Also made sure to use the correct constructor for Token in other tests.
* Syntax error
* Replaced tokensFront and tokensBack with a struct
This decreases the size of the Token class for performance purposes.
* Replaced tokensFront and tokensBack with a struct
* Added tokensFrontBack to destructor
* Reworked to use TokensBackFront struct
Also ran astyle.
* Reworked to use TokenList's TokensFrontBack member
* Reworked to use TokensFrontBack struct
* Reworked to use TokensFrontBack struct
* Reworked to work with TokensFrontBack struct
* Removed unnecessary scope operator
* Added missing parentheses
* Fixed syntax error
* Removed unnecessary constructor
* Default constructor now 0-initialises everything
This is safer for not using a temporary TokensFrontBack object, and doesn't use delegating constructors which aren't supported yet.
* Fixed unsafe null check
* Added missing explicit keyword
* Fixing stylistic nits
Removed default constructor as it has been superseded by the single-argument constructor with a default argument value.
Renamed listEnds to tokensFrontBack.
Fixed if statement that was supposed to be adding safety but would actually cause a crash if tokensFrontBack was null.
* Fixing stylistic nits
Removed default constructor and replaced it with a single-argument constructor with a default value.
* Fixing stylistic nits
Renamed _listEnds to _tokensFrontBack.
* Fixing stylistic nits
Renamed _listEnds to _tokensFrontBack.
2018-05-25 07:15:05 +02:00
orbitcowboy
9bf604c46c
timer.h: Improved const correctness of local variable.
2018-05-24 17:07:40 +02:00
orbitcowboy
d013cb2f0d
library.h: Improved const correctness of some function arguments.
2018-05-24 17:06:20 +02:00
Daniel Marjamäki
2ffbb37cee
modernize cppcheck.cpp, use range for loops
2018-05-22 23:22:46 +02:00
IOBYTE
fc1d62fd45
Fixed #7406 (Tokenizer::simplifyTypedef: array typedef used as template parameter) ( #1257 )
2018-05-22 17:31:58 +02:00
umanamente
a3b02d6ece
Fixed #8262 : false positive memleak (`shared_ptr` in function argument) ( #1249 )
...
* Fixed #8262 .
checkleakautovar.cpp:
* added `isFunctionCall` (supports template functions)
* smart pointer check in `functionCall`
* updated test case
* Renamed "bracket" to "parenthesis"
* (#8262 ) Fixed broken test
* (#8262 ) Code review comments
* (#8262 ) Renamed `tokOpeningBr` to `tokOpeningPar`
2018-05-22 09:08:23 +02:00
IOBYTE
8320be203d
Fixed #8258 (Incorrect diagnostics when using delegating consturctor with default values) ( #1255 )
2018-05-22 06:42:37 +02:00