Daniel Marjamäki
deaafd59d7
CheckClass: Undo the rule of 3 checker to avoid some warnings
2018-04-24 22:42:25 +02:00
rebnridgway
995b496ddf
Add suppressions to the XML dump ( #1166 )
...
* Added parsing suppressions from dump xml.
* Added code to dump suppressions to an xml file
* Added declaration for dump function
* Suppressions will now be written to the xml file when a dump is requested
* Fixed syntax error
* Removed excess whitespace
* Fixed indentation to be consistent
* Fixed indentation to be consistent
* Fixed indentation to be consistent
* Added missing include for ErrorLogger::toXml
* Fixed suggestions from pull request #1166
Switched to using ranged for loop to iterate through suppressions.
Made the line number attribute optional, rather than 0 if not specified. This means when Python deserialises it it will be None, which is more pythonic.
* Implemented checking suppressions in reportError
This modification expects suppressions and a function to be called to write a line of output to be passed in. The function checks if any of the suppressions match the warning (with the new Suppression.isMatch function) and if so returns None. This change maintains the old behaviour of returning the warning text, but adds the possibility of returning None if the warning was suppressed.
* Fixed code quality warnings
* Removed more extraneous whitespace
2018-04-24 22:19:24 +02:00
Daniel Marjamäki
485d3e0229
CheckClass: Tweak rule of 3 checker
2018-04-24 21:45:30 +02:00
Daniel Marjamäki
5518247b96
Refactoring; use range for
2018-04-24 21:18:36 +02:00
Daniel Marjamäki
b0b08a3bb0
Refactoring: Use range for loop
2018-04-24 18:17:47 +02:00
Daniel Marjamäki
dbcdb19b73
Refactoring; Use range for
2018-04-24 18:02:36 +02:00
Daniel Marjamäki
6fb25dcaa4
CheckClass: Changed checker for 'copy constructor' and 'operator=' to a 'rule of 3' checker
2018-04-24 16:07:58 +02:00
Daniel Marjamäki
8310198cd5
SymbolDatabase: Refactoring and testing isImplicitlyVirtual
2018-04-24 13:53:58 +02:00
Daniel Marjamäki
b94d8fd686
SymbolDatabase: Improve doxygen comments
2018-04-24 13:03:32 +02:00
Daniel Marjamäki
c3cb0ddf8c
Refactoring; use range for loops
2018-04-24 11:13:19 +02:00
Daniel Marjamäki
f7db818273
errorlogger: fix handling of {inconclusive}
2018-04-24 11:10:41 +02:00
Daniel Marjamäki
22963f3ed8
Refactoring; use range for loop
2018-04-24 11:04:47 +02:00
Daniel Marjamäki
bb227613bb
SymbolDatabase: Better type lookup in methods
2018-04-23 22:27:15 +02:00
Daniel Marjamäki
f021094f75
minor refactorings in SymbolDatabase
2018-04-23 21:45:25 +02:00
Daniel Marjamäki
e3a4ef795e
Refactoring: After conditional return the 'else' is not needed
2018-04-23 16:27:56 +02:00
Daniel Marjamäki
6d86ad78ba
Refactoring, use early continue
2018-04-23 16:23:22 +02:00
Daniel Marjamäki
84aaec26e6
--template: fixed {code} output with tabs
2018-04-23 14:11:33 +02:00
Daniel Marjamäki
f058d9ad08
CLI: Added more fields for --template and added a new --template-location. The gcc predefined template now matches latest gcc better.
2018-04-23 12:21:18 +02:00
Daniel Marjamäki
b44a40801b
ErrorLogger: add {column} and {code}
2018-04-23 09:18:32 +02:00
Daniel Marjamäki
42c54f12fe
Refactoring: Use range for loops in CheckClass
2018-04-23 07:51:28 +02:00
Daniel Marjamäki
e08683c009
Refactoring: Use range for loops in CheckFunctions
2018-04-23 07:49:38 +02:00
Daniel Marjamäki
c6d834ae17
Refactoring: Use range for loops in CheckBool
2018-04-23 07:46:37 +02:00
Daniel Marjamäki
b6e89f85d0
CheckOther: Use isLikelyStreamRead
2018-04-22 17:14:28 +02:00
Daniel Marjamäki
b7a52c3811
CheckUnusedVar: Use isLikelyStreamRead
2018-04-22 17:08:23 +02:00
Daniel Marjamäki
fba8208134
CheckUninitVar: Use isLikelyStreamRead
2018-04-22 17:04:54 +02:00
Daniel Marjamäki
cc4977e140
Tweaking CheckUninitVar (<< and >> handling)
2018-04-22 16:39:57 +02:00
Daniel Marjamäki
7b10375683
Try to make Travis happy
2018-04-22 14:00:03 +02:00
Daniel Marjamäki
3d78320d04
CheckCondition: Use isLikelyStreamRead
2018-04-22 09:48:54 +02:00
Daniel Marjamäki
0263452f5d
CheckClass: Use isLikelyStreamRead
2018-04-22 07:45:36 +02:00
Daniel Marjamäki
be48de1be9
CheckClass: Use isLikelyStreamRead
2018-04-22 07:40:11 +02:00
Daniel Marjamäki
121d4ff2ba
isLikelyStreamRead: when using & dont allow astParent
2018-04-22 07:30:45 +02:00
Daniel Marjamäki
e1db4c0e2c
astyle formatting
...
[ci skip]
2018-04-21 13:28:31 +02:00
Daniel Marjamäki
8cc7131ee9
Rename CppCheck::processFile to CppCheck::checkFile
2018-04-21 13:28:26 +02:00
Simon Martin
a451a5b598
Ticket #8436 : Handle C++11 initializations within ternary operator. ( #1174 )
2018-04-21 11:30:07 +02:00
Paul Fultz II
d939c6015a
Report opposite expressions ( #1182 )
...
* Report opposite expressions
* Skip assignment operator
2018-04-21 11:28:21 +02:00
Paul Fultz II
bad66594d6
Fix double free regression with smart pointers ( #1184 )
2018-04-21 11:24:19 +02:00
Daniel Marjamäki
2073bd02d8
Refactoring: Use range for loop
2018-04-20 22:13:05 +02:00
Daniel Marjamäki
3fdb2da0d1
Refactoring: Use range for loop
2018-04-20 22:10:29 +02:00
Daniel Marjamäki
46bb63ceaf
Refactoring: Use range for loop
2018-04-20 22:08:22 +02:00
Daniel Marjamäki
d5fb529d4f
Fixed #8492 (Improve message: parameter should be passed by reference)
2018-04-20 17:33:42 +02:00
Daniel Marjamäki
313b2a1755
Refactoring: Use ranged for loops
2018-04-19 22:31:36 +02:00
rikardfalkeborn
57019c0128
Fix comment in Tokenizer::simplifyMathFunctions ( #1179 )
...
In 9cea2d6df
, simplifications were removed for a number of functions
which should instead be handled with configurations. The commit did
however not update the description of the function, do this now.
Also sin() and sinh() and their float and long double versions were
missing from the comment so add these as well.
2018-04-19 06:14:16 +02:00
Daniel Marjamäki
b459da2ac3
Refactor Path::getRelativePath()
2018-04-18 22:23:38 +02:00
Daniel Marjamäki
4b8769a9f5
astyle formatting
...
[ci skip]
2018-04-18 17:46:31 +02:00
Daniel Marjamäki
7ee636b934
Refactoring: Reuse isLikelyStreamRead in isVariableChanged
2018-04-18 17:46:10 +02:00
Daniel Marjamäki
26e36a1d6b
Fix FP uninitvar when stream bool operator is used
2018-04-18 16:13:24 +02:00
Daniel Marjamäki
1b4f4d7130
Fixed #8495 (False positive: boolean result used in bitwise operation when & is overloaded)
2018-04-17 22:14:17 +02:00
Daniel Marjamäki
219176c11c
Update isLikelyStreamRead ( #8494 )
2018-04-17 20:34:31 +02:00
Daniel Marjamäki
7825eb8670
Refactoring; reuse isLikelyStreamRead
2018-04-17 19:51:27 +02:00
Daniel Marjamäki
4f6bd5d607
Fix Travis
2018-04-17 14:54:12 +02:00
Daniel Marjamäki
c84628c28a
Fixed #8494 (False positive: serialization class overloads operator)
2018-04-17 14:23:04 +02:00
Paul Fultz II
7d5a1b1248
Fix shadow warning ( #1175 )
2018-04-17 08:37:41 +02:00
Daniel Marjamäki
a4f8c44432
astyle formatting
...
[ci skip]
2018-04-16 12:55:37 +02:00
Paul Fultz II
2a657cfd08
Check for double frees when using smart pointers ( #1172 )
...
* Check for double frees when using smart pointers
* Some updates from feedback
* Add test for mismatch allocation
* Constants
* Check smart pointer deleter
* Switch order
* Use next
* Add owned state
* Fix handling of leaks
* Use ast for checking addressof operator
* Remove stray character
* Add a test for mismatch allocator
* Add another test for deallocating with custom function
2018-04-16 11:11:13 +02:00
Simon Martin
5c1540915d
Fix warning emitted by clang. ( #1173 )
2018-04-15 20:40:24 +02:00
Daniel Marjamäki
9a0756c13f
CheckLeakAutoVar: clarify the code; replace magic values with constants, add a comment
2018-04-15 01:53:00 +02:00
Daniel Marjamäki
6ecd638e49
chmod 644 checkinternal.*
...
[ci skip]
2018-04-14 19:45:42 +02:00
Daniel Marjamäki
0a83c6b173
CheckInternal: Check that emplace is not used
2018-04-14 19:43:57 +02:00
Daniel Marjamäki
e95ff8c7b6
Avoiding emplace
2018-04-14 19:24:35 +02:00
Daniel Marjamäki
e73fe49d3c
4e820b6c4a
2018-04-14 15:46:55 +02:00
Daniel Marjamäki
be78e44c3f
Revert "I see compilation problems with std::multimap::emplace on a old system so lets avoid that"
...
This reverts commit 4e820b6c4a
.
2018-04-14 15:43:14 +02:00
Daniel Marjamäki
4e820b6c4a
I see compilation problems with std::multimap::emplace on a old system so lets avoid that
2018-04-14 15:19:04 +02:00
Daniel Marjamäki
97c86ff0e6
Dumps: Added isVirtual/isImplicitlyVirtual info
2018-04-13 21:15:43 +02:00
Daniel Marjamäki
f7d65cd735
SymbolDatabase: add constness attribute for Variable
2018-04-12 20:23:34 +02:00
Sebastian
c39a3e3f1c
windows string macros: Handle _T, _TEXT and TEXT internally, add tests ( #1163 )
...
Remove TEXT() macro from windows.cfg and handle it internally where it
can be correctly simplified (Ansi vs. Unicode).
Also add handling of _TEXT() macro which is just a synonym for _T().
Add tests to verify correct function and macro simplification.
2018-04-12 08:52:31 +02:00
PKEuS
b596b0d549
Refactorization: pass std::string directly to std::*fstream
2018-04-11 09:50:42 +02:00
PKEuS
d2146844dd
Refactorizations:
...
- Replace several push_back-calls by emplace_back
- Replace some x = x.substr(0, y) calls by x.erase(y)
2018-04-11 09:44:35 +02:00
Daniel Marjamäki
a0c9de0048
Suppressions: Validate inline suppressions
2018-04-11 08:18:00 +02:00
Daniel Marjamäki
87557afc43
Suppressions: Better XML formatting
2018-04-10 16:32:47 +02:00
Daniel Marjamäki
a2b8eb7405
Suppressions: Report error if bad suppression element is used
2018-04-10 16:26:00 +02:00
Daniel Marjamäki
1767fe525b
Addons: Fixed handling of noname arguments
2018-04-10 11:10:10 +02:00
Daniel Marjamäki
8c082f1b3f
Remove lib/cxx11emu.h
2018-04-09 22:28:41 +02:00
Daniel Marjamäki
c5923fbdd3
astyle formatting
2018-04-09 22:21:17 +02:00
Daniel Marjamäki
8f84a493f4
remove foreach emulator
2018-04-09 22:09:10 +02:00
Daniel Marjamäki
e6114a2321
glob patterns: wildcards also match path separators (like before)
2018-04-09 18:59:18 +02:00
IOBYTE
8734e4dd38
Fix SymbolDatabase bailout to also support struct ( #1160 )
2018-04-09 18:53:55 +02:00
Paul Fultz II
d8b3fa5c70
Fix #8482 : Regression with valueflow ( #1159 )
...
* Fix regression with valueflow
* Simplify test case
2018-04-09 16:13:17 +02:00
Daniel Marjamäki
f677322c69
Suppressions: Allow symbol-based inline suppressions
2018-04-09 11:50:59 +02:00
PKEuS
17b4721bd2
C++17: Support "if constexpr" (by simplifying it to plain if() statement)
...
This might lead to complaints about constant expressions as if() statement, but should fix syntax errors.
2018-04-09 11:42:59 +02:00
PKEuS
b15cc3f236
Refactorization: Replace several push_back-sequences by initializer lists
2018-04-09 09:54:39 +02:00
Daniel Marjamäki
6f9c115640
Refactoring: use range for loops
2018-04-09 08:00:11 +02:00
Daniel Marjamäki
a0906140a6
Suppressions: New extensible Suppressions xml format that allow more attributes. To start with it also allows symbolName.
2018-04-09 06:43:48 +02:00
PKEuS
e2002db78d
Replaced make_container by C++11 initializer lists
2018-04-08 23:03:44 +02:00
Daniel Marjamäki
ae3e649cc4
astyle formatting
...
[ci skip]
2018-04-08 20:29:52 +02:00
Dmitry-Me
d9cbaa83d6
Extract common condition
2018-04-08 21:11:44 +03:00
Paul Fultz II
95fc84a26b
Find duplicate expressions assigned to the same variable ( #1129 )
...
* Check for duplicate assignments
* Improve checking of expression
* Add more tests
* Use simple match
* Improve robustness of check
* check for null
* Reduce side effects by checking for side effects
* Improve verbose message
* Reword the error message
2018-04-08 14:43:19 +02:00
Daniel Marjamäki
ee5c60e8f6
Refactoring, use early continue
2018-04-08 09:30:13 +02:00
Daniel Marjamäki
795b9f5e0f
astyle formatting
2018-04-08 09:25:59 +02:00
Paul Fultz II
aed84abfd5
Extend valueflow comparison ops ( #1153 )
...
* Handle else clause when doing a compare
* Break early
* Fix bug in checking no return else
* Escape quotes
* Add equal sign
* Simplify the logic
2018-04-08 09:24:01 +02:00
Paul Fultz II
b85dda77da
Add a check for identical inner conditions ( #1156 )
2018-04-08 08:13:44 +02:00
Daniel Marjamäki
541e255159
Remove inner identical condition
2018-04-08 08:12:56 +02:00
IOBYTE
90983303f0
Fix #8477 (False positive caused by anonymous enum in method body) ( #1154 )
2018-04-08 08:00:12 +02:00
IOBYTE
4f9073159a
Fix another SymbolDatabase bailout ( #1157 )
2018-04-08 07:29:19 +02:00
IOBYTE
20f0784c06
Fix #8470 ((error) SymbolDatabase bailout; unhandled code) ( #1155 )
2018-04-07 16:41:39 +02:00
Matthias Krüger
5a104cab6e
remove weird "#line 2" from valueflow.cpp
2018-04-06 23:26:08 +02:00
Daniel Marjamäki
0daa3bba30
ValueType: Improved type handling of containers when [] operator is used
2018-04-06 22:26:35 +02:00
IOBYTE
7e15e39f39
Fix some new SymbolDatabase bailout; unhandled code syntax errors. ( #1152 )
2018-04-06 21:32:32 +02:00
Daniel Marjamäki
05acf9b352
Fixed #8470 ((error) SymbolDatabase bailout; unhandled code)
2018-04-06 16:03:58 +02:00
jrp2014
034296039c
Refactor lib/checkunusedvar.cpp
2018-04-06 08:07:15 +02:00
jrp2014
d2160f00b2
Refactor lib/checkuninitvar.cpp
2018-04-06 08:04:06 +02:00
jrp2014
15b5b7ebf4
Refactor lib/checkother.cpp
2018-04-06 08:00:10 +02:00
IOBYTE
9f386d305a
Fixed #8280 (False positive uninitMemberVar - initialized from nested overloaded function) ( #1151 )
2018-04-06 07:53:05 +02:00
jrp2014
c5e14ad590
Refactor lib/checkmemoryleak.cpp
2018-04-05 21:41:31 +02:00
jrp2014
94048d93f6
Refactor lib/checkleakautovar.cpp
2018-04-05 15:58:28 +02:00
jrp2014
c367fc9f09
Refactor lib/checkio.cpp
2018-04-05 15:55:57 +02:00
jrp2014
17bd2f0c72
Refactor lib/checkcondition.cpp
2018-04-05 15:53:49 +02:00
jrp2014
043b64467b
Refactor lib/checkclass.cpp
2018-04-05 15:48:23 +02:00
Daniel Marjamäki
4836df9b1d
Fix Token::Match pattern
2018-04-05 15:47:25 +02:00
Daniel Marjamäki
e5db23fff3
project: import compile_commands.json generated by compiledb-generator
2018-04-05 15:40:59 +02:00
Daniel Marjamäki
3ad6c7ebce
Refactoring, use early continue
2018-04-05 08:21:43 +02:00
jrp2014
67a71fa362
Refactor lib/checkbufferoverrun.cpp
2018-04-05 08:17:56 +02:00
jrp2014
e65c63e2bb
Refactor lib/astutils.cpp
2018-04-05 08:07:22 +02:00
jrp2014
214322d501
Refactor lib/tokenize
2018-04-05 08:02:59 +02:00
Paul Fultz II
b871c85b67
Improve valeflow analysis with comparison operators ( #1131 )
...
* Improve valeflow analysis with comparison operators
* Use simple match
* Dont add 0 on comparisons
* Check reverse comparisons
* Use nullptr
* Remove duplicate code tests
2018-04-05 06:51:31 +02:00
Paul Fultz II
54de7b48c9
Fix false positive when constructing with curly brace ( #1148 )
2018-04-05 06:47:59 +02:00
IOBYTE
06133fa3ba
Refactor findFunction to unify two ValueFlow paths. ( #1149 )
2018-04-05 06:46:48 +02:00
Paul Fultz II
0c6f184423
Fix false positive for opposite conditions when using different containers ( #1143 )
...
* Fix false positive for opposite conditions when using different containers
* Add additional test
2018-04-05 06:43:13 +02:00
jrp2014
b6504c70ca
Improve constness
2018-04-04 21:51:31 +02:00
IOBYTE
a62c932a8f
Improve findFunction for function calls with function calls as arguments. ( #1147 )
...
Duplicate the existing logic for variable to variable type comparisons
for function return type to variable type comparisons.
2018-04-04 20:44:01 +02:00
Daniel Marjamäki
0d434efc15
virtualCallInConstructor: Clarify warning message
2018-04-04 13:04:40 +02:00
Daniel Marjamäki
b3b364b42f
virtualCallInConstructor: Updated warning message
2018-04-04 12:52:58 +02:00
Daniel Marjamäki
3b07b749d6
Refactoring, use early return
2018-04-04 10:50:10 +02:00
IOBYTE
fa968d75bd
Partial fix for #8291 : (False positive uninitMemberVar when calling delegated constructor) ( #1142 )
2018-04-04 08:29:12 +02:00
Paul Fultz II
bce5fe5cef
Improve duplicate expressions in the ternary op by checking for equal values as well ( #1134 )
...
* Improve duplicate expressions in the ternary op by checking for equal values as well
* Use value instead of expression
2018-04-03 21:43:55 +02:00
Paul
d240a36a60
Extend nullPointerArithmetic to check for addition as well
2018-04-03 21:32:37 +02:00
Daniel Marjamäki
ee22a325c7
virtual function call in constructor: don't warn about explicit scoped call
2018-04-03 14:02:59 +02:00
IOBYTE
2a418fa0f5
Fixed #8466 (False Positive: Member variable is not initialized in the constructor. When using overloaded constructors) ( #1141 )
2018-04-02 18:32:45 +02:00
Daniel Marjamäki
1046ca2120
Improve check: Warn about virtual function calls in constructor/destructor
2018-04-02 15:31:47 +02:00
Daniel Marjamäki
e492932f19
Improve check: Variable is not initialized in private constructor (C++11 or later)
2018-04-02 15:26:15 +02:00
PKEuS
32a2060f14
Set version to 1.83.99/1.84 dev
...
Updated copyright year in version.h
2018-04-02 15:21:37 +02:00
Daniel Marjamäki
9f92685b92
SymbolDatabase: Throw InternalError if parsing fails
2018-04-02 13:14:48 +02:00
Daniel Marjamäki
c0272fc2ef
Fixed #8259 (Don't combine &= for anonymous reference parameters)
2018-04-01 10:27:16 +02:00
Daniel Marjamäki
7260be81a6
Update version
2018-03-31 21:25:29 +02:00
Daniel Marjamäki
7e4dba6a7e
Updated copyright year
2018-03-31 20:59:09 +02:00
Daniel Marjamäki
4af2e517b9
Fixed #8465 (SymbolDatabase: bailout if there is 'struct A::B ab[5];')
2018-03-31 17:54:47 +02:00
Daniel Marjamäki
ecfb4fd26c
Fix --dump output
2018-03-31 10:27:34 +02:00
Daniel Marjamäki
da4fc25fee
Fixed #8432 (Problem with dump files and non-ASCII characters)
2018-03-30 22:34:55 +02:00
Daniel Marjamäki
95ccd9483b
gcc 4.5 compatibility
2018-03-30 20:57:25 +02:00
Daniel Marjamäki
dbe962ad5d
Compatibility fix for gcc 4.5
2018-03-29 22:00:04 +02:00
Daniel Marjamäki
96167ffa51
Compatibility fixes for gcc 4.5
2018-03-29 17:37:06 +02:00
Daniel Marjamäki
1bc8f7f29a
astyle formatting
2018-03-29 17:25:20 +02:00
Paul Fultz II
70da3acb70
Add foreach emulation for older compilers ( #1138 )
2018-03-29 04:51:22 +02:00
Daniel Marjamäki
210b921062
Fixed #8462 (AST: no ast created for 'e = { std::move(address),httpPort, (httpsPort) };')
2018-03-27 13:44:28 +02:00
Daniel Marjamäki
e65a5529ad
astyle formatting
...
[ci skip]
2018-03-24 12:30:11 +01:00
Paul
43be20a824
Check more opposite conditions
2018-03-24 07:58:37 +01:00
IOBYTE
5bc039b7da
Fix #6367 and #8439 (improve sizeof value flow support) ( #1132 )
2018-03-23 08:28:12 +01:00
Daniel Marjamäki
5a444f764b
Fixed one more syntax error FP related to #8390
2018-03-22 15:20:37 +01:00
Daniel Marjamäki
3d4b773fd1
Fixed #8390 (Syntax error from an MSVC internal header)
2018-03-22 09:07:58 +01:00
Daniel Marjamäki
1ae75303a7
micro optimisation, use const reference
2018-03-19 09:53:14 +01:00
Daniel Marjamäki
7699f6432b
Fixed #8288 (valueFlowGlobalVar: compound assignments)
2018-03-18 19:53:33 +01:00