PKEuS
|
728d4242dc
|
Refactorizations in CheckBufferOverrun:
- Improved performance of CheckBufferOverrun::checkScope()
- Made some patterns less restrictive
|
2016-05-25 11:50:34 +02:00 |
PKEuS
|
cda246da75
|
Refactorized CheckUnusedVar::checkStructMemberUsage(): Reimplemented check based on symboldatabase
|
2016-05-25 11:13:31 +02:00 |
PKEuS
|
e22c177003
|
Optimized Tokenizer::setVarIdPass1(): Avoid costly std::stack<std::map<...>>::push/pop() operations for struct initializers
|
2016-05-24 23:15:09 +02:00 |
PKEuS
|
43bf1bb685
|
Refactorized CheckUnusedVar::checkStructMemberUsage(): Drastically reduced number of Token::findmatch() calls to improve performance
|
2016-05-24 23:10:39 +02:00 |
PKEuS
|
686cc6640e
|
Refactorization: Improved performance of Tokenizer::simplifyMicrosoftMemoryFunctions() and Tokenizer::simplifyMicrosoftStringFunctions()
- Added pre-check before doing complex Token::Match() calls
- Use std::map instead of std::set
|
2016-05-24 21:19:20 +02:00 |
PKEuS
|
f2ae295f1e
|
Support char literals in CheckCondition::checkIncorrectLogicOperator() (#5912)
|
2016-05-24 15:08:48 +02:00 |
Daniel Marjamäki
|
06a594a9e0
|
Fixed #6207 ('not' misinterpreted as alternative C token)
|
2016-05-24 13:33:21 +02:00 |
Daniel Marjamäki
|
684966f674
|
Fixed #7509 (ValueType: wrong type for container element - std::array)
|
2016-05-24 09:07:38 +02:00 |
Daniel Marjamäki
|
397480f929
|
Fixed #7376 (ValueType: wrong type for container element)
|
2016-05-23 18:53:59 +02:00 |
Daniel Marjamäki
|
37afc57a2a
|
Fixed #7455 (Suppressions: not working well with windows path separators)
|
2016-05-23 15:38:47 +02:00 |
Simon Martin
|
ce05d23bb7
|
No need to use std::min() in normalizeCharacterLiteral.
|
2016-05-22 22:59:32 +02:00 |
PKEuS
|
4bb99a7887
|
Improved CheckSizeof::checkSizeofForPointerSize():
- Support cast in front of malloc() call
- Support sizeof(type) pattern (#4428)
|
2016-05-22 22:29:52 +02:00 |
Daniel Marjamäki
|
beabe110fd
|
setVarIdStructMembers: Fixed code so loop will terminate properly
|
2016-05-22 21:42:10 +02:00 |
Daniel Marjamäki
|
710e066a9a
|
Fixed #6406 (VarId: struct member initialization)
|
2016-05-22 21:18:52 +02:00 |
PKEuS
|
64d2fd2f57
|
Added new attribute "arg" to <alloc> and <dealloc> to specify the argument that is allocated/deallocated.
This fixes several issues with allocation functions in windows.cfg, such as HeapAlloc() and VirtualAllocEx() (#7503)
|
2016-05-22 17:19:14 +02:00 |
PKEuS
|
851c6e0ed5
|
Improved buffer overflow checking for scanf: %c with a width (#3494)
|
2016-05-22 14:00:26 +02:00 |
Roberto Martelloni
|
dce7128f30
|
CWE mapping of duplicateExpression, duplicateBreak (CWE561), unreachableCode, unsignedLessThanZero, unsignedPositive, pointerLessThanZero, pointerPositive, varFuncNullUB, nanInArithmeticExpression, commaSeparatedReturn, (#797)
ignoredReturnValue
|
2016-05-22 13:17:38 +02:00 |
Daniel Marjamäki
|
06d5e73e88
|
Fixed #7471 (Tokenizer::prepareTernaryOpForAST: typedef with comma inside ?:)
|
2016-05-22 11:33:21 +02:00 |
Daniel Marjamäki
|
b7b92b2140
|
Fixed #6674 (false positive 'unusedPrivateFunction' - calling virtual function in subclass)
|
2016-05-21 20:07:35 +02:00 |
Daniel Marjamäki
|
c23c1f245c
|
Fixed #6989 (incorrect memleak error)
|
2016-05-21 14:03:28 +02:00 |
Daniel Marjamäki
|
a5dc76d50c
|
Refactoring, use ast instead of token list to find if variable is used in rhs
|
2016-05-21 13:45:08 +02:00 |
amai2012
|
b60b283c5b
|
Merge pull request #796 from simartin/ticket_7452_follow_up
Address comments in PR#794 and alternative fix for ticket #7500.
|
2016-05-21 09:20:23 +02:00 |
Alexander Mai
|
d492500f34
|
#5844 False positive: returnReference fp for inner lambda function
|
2016-05-20 23:46:56 +02:00 |
Simon Martin
|
eb1b3db04a
|
Address comments in PR#794 and alternative fix for ticket #7500.
|
2016-05-20 22:52:43 +02:00 |
Alexander Mai
|
303a85a930
|
#4195 segmentation fault of cppcheck (invalid code). Fix segfault which turned up after refactoring the enum handling code.
|
2016-05-17 22:19:23 +02:00 |
Alexander Mai
|
4f77a2b044
|
#7500 buffer overflow: encodeMultiChar lib/mathlib.cpp:343. Improve errors handling
|
2016-05-17 20:43:32 +02:00 |
Daniel Marjamäki
|
7453b641bd
|
Fixed #4839 (Variable (in array) is assigned a value that is never used)
|
2016-05-17 16:03:55 +02:00 |
Daniel Marjamäki
|
99fc13ee70
|
Fixed #6968 (unusedPrivateFunction not correct, called by inner class)
|
2016-05-16 20:52:50 +02:00 |
Daniel Marjamäki
|
7fffc09b17
|
MathLib: Add #include for VS2013
|
2016-05-16 20:30:53 +02:00 |
Daniel Marjamäki
|
65998f1d7c
|
CheckClass: previous change introduced false positives when Token::function() is wrong. Avoid those false positives.
|
2016-05-16 10:55:22 +02:00 |
Daniel Marjamäki
|
bce15b1ade
|
CheckClass: refactored the code, use symboldatabase instead of name comparisons when possible, fixed a FN.
|
2016-05-16 09:36:26 +02:00 |
amai2012
|
22542e7547
|
Merge pull request #794 from simartin/ticket_7452
Ticket #7452: Properly interpret escape sequences in character literals.
|
2016-05-15 20:35:50 +02:00 |
Daniel Marjamäki
|
2668cee3cf
|
Fixed #6397 (FP deallocuse - conditional deallocation and conditional return)
|
2016-05-15 20:27:44 +02:00 |
Simon Martin
|
3af30e728c
|
Ticket #7452: Properly interpret escape sequences in character literals.
|
2016-05-15 15:48:24 +02:00 |
Alexander Mai
|
9d1302d523
|
#7490 sizeof('a') should be sizeof(int) in C mode. Previous fix was hardcoding 4 for C.
|
2016-05-14 22:52:43 +02:00 |
Daniel Marjamäki
|
2cb03b3fd0
|
Fixed #7409 (Tokenizer: Links not set properly 'Data<T&&>')
|
2016-05-14 20:40:30 +02:00 |
Daniel Marjamäki
|
7591a57587
|
Removed redundant valuetype debug output
|
2016-05-14 20:11:57 +02:00 |
Daniel Marjamäki
|
5a1bea2a09
|
Fixed #7244 (False memory leak when POD is allocated with value initialization and pushed onto container)
|
2016-05-14 14:56:51 +02:00 |
Alexander Mai
|
251fc022fa
|
#7490 sizeof('a') should be 4 in C mode
|
2016-05-14 13:05:44 +02:00 |
Roberto Martelloni
|
afa8ad0ebe
|
CWE mapping of selfAssignment, wrongmathcall, unpreciseMathCall, memsetZeroBytes, memsetFloat, memsetValueOutOfRange, clarifyCalculation, clarifyStatement
|
2016-05-14 10:13:33 +01:00 |
Kamil Dudka
|
efe98883ab
|
checkleakautovar: do not miss 'throw' followed by ::
|
2016-05-13 21:37:49 +02:00 |
Robert Reif
|
5631c765a7
|
SymbolDatabase: better handling when array size is given with expression involving enum constants.
|
2016-05-13 11:40:19 +02:00 |
Daniel Marjamäki
|
1d21cf5755
|
Tokenizer::setVarId: Refactoring, use continue in loops
|
2016-05-12 18:58:24 +02:00 |
Daniel Marjamäki
|
372763c85e
|
Tokenizer: Refactoring, split up the big Tokenizer::setVarId() function
|
2016-05-12 18:20:20 +02:00 |
Daniel Marjamäki
|
b04285514f
|
Tokenizer: Refactoring; use early return
|
2016-05-12 15:51:30 +02:00 |
Daniel Marjamäki
|
613311cc57
|
Fixed #7493 (enumMismatch on Enum declaration)
|
2016-05-12 11:46:08 +02:00 |
Robert Reif
|
97bbb7da0d
|
Fixed #7476 (SymbolDatabase: Wrong data with single ; in line)
|
2016-05-12 11:35:02 +02:00 |
Daniel Marjamäki
|
99d0dbf39c
|
Tokenizer::setVarId: Refactoring, changed type name
|
2016-05-11 21:12:29 +02:00 |
Daniel Marjamäki
|
b965cf5491
|
Fixed #7444 (Tokenizer::varId: Wrong varid when there is anonumous union in class)
|
2016-05-11 20:43:23 +02:00 |
Daniel Marjamäki
|
bf8471e109
|
Fixed #7491 (Questionable enumMismatch)
|
2016-05-11 15:33:59 +02:00 |
Daniel Marjamäki
|
fb5e6d8a7d
|
Fixed #6960 (New check: enum variable is assigned mismatching value)
|
2016-05-10 20:22:35 +02:00 |
Daniel Marjamäki
|
f0fcb859c7
|
Tokenizer: use static keyword instead of anonymous namespace for variables
|
2016-05-10 16:17:52 +02:00 |
amai2012
|
3dea23c99e
|
Use new signature Tokenizer::createTokens
|
2016-05-09 17:14:51 +02:00 |
Daniel Marjamäki
|
8a13b5cd83
|
Fix Cppcheck warning
|
2016-05-09 13:08:00 +02:00 |
Daniel Marjamäki
|
9c8922541e
|
Avoid C++11 for-range to make AppVeyor happy
|
2016-05-09 13:05:08 +02:00 |
Robert Reif
|
381fa53ec6
|
SymbolDatabase: better handling of enum values
|
2016-05-09 12:40:56 +02:00 |
Daniel Marjamäki
|
eac3660f46
|
ValueType: Changed type info for enums to 'signed int', that is what checks wants to see mostly.
|
2016-05-09 11:11:13 +02:00 |
Daniel Marjamäki
|
1caa79c45f
|
Tokenizer::simplifyPointerConst: Remove simplification. Its purpose was to avoid crash for garbage code (#6900). This fixes #7485.
|
2016-05-08 21:32:34 +02:00 |
Daniel Marjamäki
|
e99a9b4742
|
SymbolDatabase: Fix cleanup (avoid dead pointers)
|
2016-05-08 18:34:23 +02:00 |
Daniel Marjamäki
|
6f1af2cf0a
|
ValueType: Set ValueType info in simplified token list
|
2016-05-08 17:57:26 +02:00 |
Daniel Marjamäki
|
7edb1bc2e2
|
Fixed #7484 (ValueType: crash with --debug --verbose)
|
2016-05-08 17:43:34 +02:00 |
Daniel Marjamäki
|
e355e4ac78
|
ValueType: Refactoring
|
2016-05-08 17:42:53 +02:00 |
Daniel Marjamäki
|
803b4d4cf8
|
ValueType: Better handling of nested types
|
2016-05-08 14:55:10 +02:00 |
Daniel Marjamäki
|
636e97c272
|
ValueType: Improved debug output for nested types
|
2016-05-08 13:15:20 +02:00 |
Daniel Marjamäki
|
f0953c6916
|
ValueType: better handling of nonstandard types
|
2016-05-08 11:55:25 +02:00 |
Daniel Marjamäki
|
b94eaeca6a
|
ValueFlow: For convenience, return constant folded value
|
2016-05-08 11:17:10 +02:00 |
Daniel Marjamäki
|
b26dd1ccab
|
ValueFlow: Handle enums
|
2016-05-07 20:18:07 +02:00 |
Daniel Marjamäki
|
ad2d3394c8
|
Tokenizer: Create syntax tree before creating symboldatabase
|
2016-05-07 19:56:28 +02:00 |
Daniel Marjamäki
|
be90080976
|
Fixed #7481 (False positive AssignmentAddressToInteger - pointer to enum)
|
2016-05-07 19:51:37 +02:00 |
Alexander Mai
|
4e9afac92f
|
Update Makefile. Replace another NULL by nullptr
|
2016-05-07 17:35:00 +02:00 |
amai2012
|
eba1b0881d
|
Minor refactoring: use nullptr (instead of 0/NULL), change signature of Tokenizer::createTokens
|
2016-05-07 16:30:54 +02:00 |
PKEuS
|
5d5886b464
|
Properly detect binary & in CheckCondition::clarifyCondition() (fixes false positives when self-checking cppcheck)
|
2016-05-06 17:39:41 +02:00 |
PKEuS
|
896582ce56
|
Fixes for CheckStl::string_c_str():
- Fixed false positive #7480
- Fixed false negative: Show performance message also for non-local objects
|
2016-05-06 17:25:00 +02:00 |
PKEuS
|
3366a74bb0
|
Refactorized CheckCondition::clarifyCondition():
- Reimplemented parts of the check based on ValueType
- Merged two loops
Fixed some type conversion messages
|
2016-05-06 15:22:45 +02:00 |
PKEuS
|
0bf85f9aa5
|
ValueType: Support integers defined in libraries (#7394)
|
2016-05-04 15:39:56 +02:00 |
PKEuS
|
6c3f0a7bb8
|
SymbolDatabase: Properly detect lambdas with return type (#7473)
|
2016-05-04 14:10:09 +02:00 |
PKEuS
|
f0fb7a8245
|
Simplify __attribute__ earlier (#7462)
|
2016-05-04 13:51:34 +02:00 |
PKEuS
|
17ccb0fbe6
|
CheckClass::checkMemsetType(): Skip arrays of pointers (#7456)
|
2016-05-04 13:38:36 +02:00 |
PKEuS
|
21b51dd235
|
Check64BitPortability::pointerassignment(): Skip over lambdas (#7451)
|
2016-05-04 13:23:50 +02:00 |
PKEuS
|
b65cacf4b1
|
Tokenizer::simplifyStaticConst(): Support "struct" and operator:: (#7403)
|
2016-05-04 12:33:19 +02:00 |
PKEuS
|
f23668dfcc
|
Fixed false positive doubleFree (#7401)
|
2016-05-04 12:14:42 +02:00 |
PKEuS
|
23202d9442
|
Fixed bailoutFunctionPar() for temlate functions (#7396)
|
2016-05-04 11:38:29 +02:00 |
PKEuS
|
b7d8cd69f6
|
Fixed false negatives in CheckStl::string_c_str():
- Support more complex patterns (#7385)
- Use same logic for string_c_strReturn() as for string_c_strError()
|
2016-05-04 11:10:12 +02:00 |
Roberto Martelloni
|
01aaa56740
|
CWE mapping of redundantCopy, redundantAssignment, constStatement, charBitOp, variableScope, redundantAssignInSwitch, redundantCopyInSwitch, switchCaseFallThrough
|
2016-04-29 18:01:37 +01:00 |
amai2012
|
a54ec615f3
|
Run astyle
|
2016-04-25 11:12:35 +02:00 |
amai2012
|
479f00030e
|
Restore compatibility with current C++ language set specification (VS2010)
|
2016-04-24 23:02:56 +02:00 |
amai2012
|
7a8a6695a4
|
Merge pull request #786 from prozak/master
- fix for #5749 defect: internal error
|
2016-04-24 22:19:02 +02:00 |
Daniel Marjamäki
|
0635ceb42a
|
Replaced C++11 auto keyword
|
2016-04-23 09:18:28 +02:00 |
Robert Reif
|
ee2be81fae
|
enums: Fix false negatives caused by new enum handling
|
2016-04-22 20:26:58 +02:00 |
PKEuS
|
7ff90e7fae
|
Set version to 1.73.99/1.74 dev
|
2016-04-22 16:55:19 +02:00 |
prozak
|
6592638022
|
- fix for #5749 defect: internal error
typedef expansion in cast operator was not processed correctly
|
2016-04-22 21:39:03 +08:00 |
Daniel Marjamäki
|
2a719bd194
|
Use simpleMatch for simple pattern
|
2016-04-22 06:52:37 +02:00 |
Daniel Marjamäki
|
dc2a92263a
|
Fixed #7426 (RFC: time to replace simplifyEnum?)
|
2016-04-22 06:02:54 +02:00 |
Daniel Marjamäki
|
00a584d8d1
|
astyle formatting
|
2016-04-22 06:01:34 +02:00 |
Bartlomiej Grzeskowiak
|
7e020e1d92
|
- fix for #7428 false negative: Statement is always false
|
2016-04-14 14:50:08 +02:00 |
Roberto Martelloni
|
e89cd1b8a4
|
CWE mapping of unsafeClassCanLeak, zerodivcond, invalidPointerCast, redundantCopy, redundantAssignment, comparisonFunctionIsAlwaysTrueOrFalse, checkCastIntToCharAndBack, cstyleCast, passedByValue, clarifyCondition, exceptThrowInDestructor, exceptDeallocThrow, exceptRethrowCopy, catchExceptionByValue, fflushOnInputStream, seekOnAppendedFile, publicAllocationError
CWE mapping of unsafeClassCanLeak, zerodivcond, invalidPointerCast, redundantCopy, redundantAssignment, comparisonFunctionIsAlwaysTrueOrFalse, checkCastIntToCharAndBack, cstyleCast, passedByValue, clarifyCondition, exceptThrowInDestructor, exceptDeallocThrow, exceptRethrowCopy, catchExceptionByValue, fflushOnInputStream, seekOnAppendedFile, publicAllocationError
|
2016-04-12 19:29:40 +02:00 |
Daniel Marjamäki
|
b6d3aefba6
|
1.73: Set versions
|
2016-04-08 20:46:59 +02:00 |
amai2012
|
f5e8a72dc2
|
#7438 Incorrect alloca() avoidance suggestion
|
2016-04-08 11:21:53 +02:00 |
Robert Reif
|
47634a0ada
|
Fixed #7420 ((debug) Executable scope 'foo' with unknown function.)
|
2016-03-22 14:10:20 +01:00 |
Daniel Marjamäki
|
ac8341e3de
|
keep type suffixes after constant folding using bit operations
|
2016-03-21 21:20:02 +01:00 |