Daniel Marjamäki
|
0ddeac0429
|
refactor (use ast) and improve CheckOther::checkRedundantAssignment (warn about global variables unless they are volatile, handle arrays in lhs better)
|
2016-07-18 12:43:23 +02:00 |
Daniel Marjamäki
|
b9443771fb
|
cleanup tests
|
2016-07-18 10:42:03 +02:00 |
Daniel Marjamäki
|
4f051bf9dd
|
Fixed #7599 (valueFlowAST: handle && and || better)
|
2016-07-17 21:51:20 +02:00 |
Daniel Marjamäki
|
0162f33d3f
|
CheckSizeof: allow division with sizeof(char) when byte count is expected.
|
2016-07-17 19:19:15 +02:00 |
Daniel Marjamäki
|
45ee29d5dc
|
Fixed #7604 (simplifyCalculation: expression '0 && x[2]' is not simplified properly)
|
2016-07-17 15:52:53 +02:00 |
PKEuS
|
801fd8f96a
|
Support trailing return types (C++11)
|
2016-07-17 15:47:50 +02:00 |
Daniel Marjamäki
|
91e38f3eb9
|
Fixed #7582 (false positive: Division by result of sizeof(). strncpy() expects a size in bytes)
|
2016-07-17 15:22:14 +02:00 |
PKEuS
|
7a183779e2
|
CheckOther::checkMemsetZeroBytes(): Support wmemset()
|
2016-07-16 21:53:25 +02:00 |
Daniel Marjamäki
|
b8ca9fc844
|
Tokenizer: alternative tokens for and,or,etc. context sensitive for both c and c++.
|
2016-07-16 21:29:56 +02:00 |
Daniel Marjamäki
|
920ac5a3f6
|
astyle formatting
[ci skip]
|
2016-07-16 21:21:24 +02:00 |
Daniel Marjamäki
|
6e3d5dc0d1
|
Fixed #7580 (False positive when using logical operator keywords 'and', 'or')
|
2016-07-16 20:21:31 +02:00 |
amai2012
|
920b402d35
|
Merge pull request #813 from boos/cwe-mapping-7
CWE mapping of incorrectStringCompare, literalWithCharPtrCompare, charLiteralWithCharPtrCompare, incorrectStringBooleanError, staticStringCompare, stringCompare, signConversion, unusedFunction, unusedVariable
|
2016-07-16 13:10:22 +02:00 |
Roberto Martelloni
|
25525e38a7
|
CWE mapping of incorrectStringCompare, literalWithCharPtrCompare, charLiteralWithCharPtrCompare, incorrectStringBooleanError, staticStringCompare, stringCompare, signConversion, unusedFunction, unusedVariable
|
2016-07-16 10:07:06 +01:00 |
PKEuS
|
0afecd8fee
|
Do not simplify name "CALLBACK" away on non-windows platforms (#7554)
|
2016-07-16 10:43:28 +02:00 |
Robert Reif
|
768c26805c
|
Fixed false positive: %Ld in format string (no. 1) requires 'long long' but the argument type is 'long long' (#7601).
|
2016-07-16 10:33:46 +02:00 |
Alexander Mai
|
e495bfb960
|
Use proper tokenizer variable
|
2016-07-10 22:24:28 +02:00 |
PKEuS
|
f869f7ebde
|
Fixed false positive reademptycontainer when end() is called (#7560)
|
2016-07-10 10:48:21 +02:00 |
Simon Martin
|
bae81fba05
|
Silent clang -Wshadow warning. (#812)
Add an optional extended description…
|
2016-07-09 19:07:58 +02:00 |
Alexander Mai
|
4eef5642c9
|
Avoid null pointer access in CheckBufferOverrun::runSimplifiedChecks
|
2016-07-09 19:00:59 +02:00 |
PKEuS
|
ded8d80b23
|
Library: Support arguments with default value. Fixed default value handling for <container> tags broken in last commit.
|
2016-07-09 12:44:17 +02:00 |
PKEuS
|
b5d3ecb942
|
Updated TinyXML, make use of second argument of XMLElement::Attribute()
|
2016-07-09 11:56:07 +02:00 |
Robert Reif
|
c1594bedbb
|
Fixed creation of SymbolDatabase for some template code (#7594)
|
2016-07-09 09:22:52 +02:00 |
PKEuS
|
44a19b527e
|
Use ValueFlow and SymbolDatabase to detect buffer overflows with new and malloc, improving support for enums (#7576)
|
2016-07-08 20:53:08 +02:00 |
Robert Reif
|
eca805ba3b
|
ValueFlow: Fixed constant folding of sizeof(enum) and sizeof(enumerator) (#7564)
|
2016-07-08 20:39:34 +02:00 |
PKEuS
|
a808549af0
|
Support lambdas in simplifyCompoundAssignment (#7571)
|
2016-07-08 20:10:33 +02:00 |
Roberto Martelloni
|
87372ccd58
|
CWE mapping of sizeofForArrayParameter, sizeofForPointer, sizeofDivisionMemfunc, sizeofwithnumericparameter, sizeofsizeof, sizeofCalculation, sizeofVoid, sizeofDereferencedVoidPointer, arithOperationsOnVoidPointer (#810)
|
2016-07-08 09:06:55 +02:00 |
Daniel Marjamäki
|
a87b4368cb
|
Revert "Preprocessor: Start replacing our Preprocessor code with simplecpp"
This reverts commit 9820783b60 .
There was Travis errors I'll need to look more at.
|
2016-07-07 23:45:42 +02:00 |
Daniel Marjamäki
|
9820783b60
|
Preprocessor: Start replacing our Preprocessor code with simplecpp
|
2016-07-07 22:58:56 +02:00 |
PKEuS
|
644a216394
|
Fixed two false positives related to char arrays initialized by a literal:
- Run check for writing to string literals on non-simplified token list (#7283)
- Run buffer overrun checking for string literals on non-simplified token list (https://sourceforge.net/p/cppcheck/discussion/general/thread/2c33dfc5/)
|
2016-07-07 19:38:15 +02:00 |
PKEuS
|
3bdcf68990
|
Fixed false positive in CheckUnusedVar::checkFunctionVariableUsage(): Bailout when break; is encountered
See also: https://sourceforge.net/p/cppcheck/discussion/general/thread/1c169dc5/
|
2016-07-07 18:27:31 +02:00 |
Simon Martin
|
40eacb19b1
|
Ticket #7565: Handle numbers with several C++14 integer separators.
|
2016-07-01 23:24:28 +02:00 |
umanamente
|
0f11007c19
|
Fixed #7083 (false positive: typedef and initialization with strings)
|
2016-06-21 22:42:46 +02:00 |
PKEuS
|
dde6f5eaea
|
Do not warn about alloca() in C89 mode (#7558)
|
2016-06-20 09:30:41 +02:00 |
PKEuS
|
721bc32b2d
|
Fixed crash in CheckVaarg::va_list_usage() (#7559)
|
2016-06-20 09:24:23 +02:00 |
Bartlomiej Grzeskowiak
|
a5cfa2b12c
|
- #7522 and #7428 revisited. ((a&7)>7U) is always false and ((X|7)>=6) is correct (X can be negative).
|
2016-06-17 12:12:53 +02:00 |
Daniel Marjamäki
|
d1f06ff47c
|
Fixed #7175 (False positive performance warning (buffer overwritten before its old content has been used))
|
2016-06-13 15:46:43 +02:00 |
PKEuS
|
53e2cabdbb
|
Properly support "break" in CheckVaarg::va_list_usage() (#7533)
Ran AStyle
|
2016-06-07 19:28:32 +02:00 |
PKEuS
|
321d2aeafb
|
Set version to 1.74.99/1.75 dev
|
2016-06-07 19:19:58 +02:00 |
Roberto Martelloni
|
f1c39dbda7
|
CWE mapping of stlIfStrFind, stlcstrReturn, stlcstrParam, stlSize, (#801)
StlMissingComparison, redundantIfRemove.
|
2016-06-05 18:24:06 +02:00 |
Daniel Marjamäki
|
e7f1318d4b
|
1.74: set version
|
2016-06-05 18:21:33 +02:00 |
Daniel Marjamäki
|
bab4f61bb2
|
astyle formatting
[ci skip]
|
2016-06-05 14:14:28 +02:00 |
Simon Martin
|
3c10b25b3e
|
Ticket #7117: Properly detect if a const ternary operator is in a template parameter list.
|
2016-06-05 14:13:32 +02:00 |
Robert Reif
|
583b340034
|
enum: set the return type of derived class functions returning enums defined in a base class.
|
2016-06-05 14:08:33 +02:00 |
Simon Martin
|
3095f47a7b
|
Ticket #7137: Properly detect C++14 digit separators. (#802)
Add an optional extended description…
|
2016-06-04 22:55:55 +02:00 |
PKEuS
|
9a61559eca
|
Fixed false positive va_list_usedBeforeStarted (#7527)
|
2016-06-02 09:32:45 +02:00 |
Daniel Marjamäki
|
3eb0e9b6c0
|
astyle formatting
[ci skip]
|
2016-05-30 09:17:40 +02:00 |
Daniel Marjamäki
|
c24a4b9189
|
Removed enum mismatch checker. Ticket #6960.
|
2016-05-29 18:00:37 +02:00 |
Robert Reif
|
f4dd43a71a
|
Fixed #7523 (Scope::findEnumerator(): does not find enum constant from other enum type)
|
2016-05-29 14:45:45 +02:00 |
Simon Martin
|
12a298b9cd
|
Ticket #7445: Properly represent integer types smaller than int in CheckIO::ArgumentInfo.
|
2016-05-28 15:36:13 +02:00 |
Daniel Marjamäki
|
18fc288de9
|
Fixed #5582 (Crash when there is OOM)
|
2016-05-28 13:24:19 +02:00 |
Daniel Marjamäki
|
2b2f12bcd5
|
Fixed #6758 (Preprocessor: handle #__VA_ARGS__)
|
2016-05-28 11:27:45 +02:00 |
Daniel Marjamäki
|
cee67730b1
|
Fixed #5746 (Cppcheck returns error-exitcode when globally suppressed error is encounted when running with multiple jobs.)
|
2016-05-27 20:13:51 +02:00 |
PKEuS
|
00e4f70fe3
|
Fixed false positives in CheckSizeof::checkSizeofForPointerSize() (#7518)
|
2016-05-26 21:25:29 +02:00 |
PKEuS
|
373ac52480
|
Mention exact function name in invalidscanf message (#5649)
|
2016-05-26 21:11:33 +02:00 |
Daniel Marjamäki
|
4b903a838f
|
Fixed #5522 (CheckLeakAutoVar: Don't treat 'x==p' as dereference of p)
|
2016-05-26 19:22:38 +02:00 |
Daniel Marjamäki
|
2417f72c5e
|
Silence Travis
|
2016-05-26 18:31:52 +02:00 |
Daniel Marjamäki
|
2a42f245a9
|
Fixed #7130 (Wrong assignmentInAssert when using lambda in predicate function)
|
2016-05-26 18:29:29 +02:00 |
Daniel Marjamäki
|
54be403f64
|
Fixed #7026 (Cppcheck does not recognizes the use of a variabile inside lambda function)
|
2016-05-26 18:07:56 +02:00 |
Daniel Marjamäki
|
38741868b5
|
Fixed #3989 (false positive: memory leak (inline function))
|
2016-05-26 17:42:27 +02:00 |
Daniel Marjamäki
|
8b088a472f
|
SymbolDatabase: Refactoring
|
2016-05-26 12:04:18 +02:00 |
Daniel Marjamäki
|
f45233682e
|
SymbolDatabase: Code cleanup
|
2016-05-26 12:00:03 +02:00 |
Robert Reif
|
66cacde3db
|
Fixed #7513 (value flow of array dimension with enum doesn't always work)
|
2016-05-26 11:25:50 +02:00 |
Daniel Marjamäki
|
50352c8d69
|
Fixed #3552 (Don't warn about missing ctor for class inside union)
|
2016-05-25 19:05:16 +02:00 |
PKEuS
|
c7b3836379
|
Small refactorizations:
- Optimized performance of several functions by adding pre-checks
- Simplified some code
- Fixed VS warning in testsymboldatabase.cpp
|
2016-05-25 15:30:49 +02:00 |
PKEuS
|
8c0eab3eb3
|
Optimization: Improved performance of CheckBufferOverrun::checkScope() when dealing with a large number of arrays (#5975)
-> checking time decreases from 1010s to 50s on the code snippet in #5975
-> Dropped a garbage code unit test
|
2016-05-25 14:42:00 +02:00 |
Daniel Marjamäki
|
ae97f53244
|
Fixed #6184 (ValueType: overloaded < operator)
|
2016-05-25 13:56:36 +02:00 |
Matthias Krüger
|
0556edd151
|
fix #7505 (crash on invalid code)
|
2016-05-25 13:14:34 +02:00 |
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 |
Daniel Marjamäki
|
4e4873772d
|
Fixed #7395 (ValueType: Result type of assignment operators)
|
2016-03-21 19:51:09 +01:00 |
Daniel Marjamäki
|
072120d19f
|
TemplateSimplifier::templateParameters: Handling r-value arguments
|
2016-03-18 11:09:41 +01:00 |
Robert Reif
|
100c4276ea
|
Fixed #7424 (value type: wrong sign)
|
2016-03-18 10:30:57 +01:00 |
Dmitry-Me
|
12a5f2509b
|
These conditions are mutually exclusive
|
2016-03-03 18:01:15 +03:00 |
Dmitry-Me
|
3bcd0e0535
|
Reduce variable lifetime
|
2016-03-02 19:07:20 +03:00 |
Daniel Marjamäki
|
253bfe432c
|
Fixed #7410 (Tokenizer: function pointer with throw())
|
2016-02-29 08:02:02 +01:00 |
Daniel Marjamäki
|
c5c376513b
|
Fixed #7102 (Preprocessor: skip __cplusplus sections in headers when .c file is checked)
|
2016-02-29 07:34:06 +01:00 |
Alexander Mai
|
0533d7bf9c
|
Run astyle + minor refactoring
|
2016-02-27 16:03:50 +01:00 |
Roberto Martelloni
|
d3645d874e
|
Mapped toomanyconfigs ,AssignmentAddressToInteger
,AssignmentIntegerToAddress ,CastIntegerToAddressAtReturn
,CastAddressToIntegerAtReturn ,assertWithSideEffect ,assignmentInAssert
,uselessAssignmentArg ,uselessAssignmentPtrArg
,comparisonOfFuncReturningBoolError
,comparisonOfTwoFuncsReturningBoolError ,comparisonOfBoolWithBoolError
,incrementboolean ,comparisonOfBoolWithInt ,compareBoolExpressionWithInt
,negativeIndex ,pointerOutOfBounds ,arrayIndexThenCheck
,possibleBufferAccessOutOfBounds ,argumentSize
,arrayIndexOutOfBoundsCond ,noConstructor ,copyCtorPointerCopying
,noCopyConstructor ,uninitMemberVar ,operatorEqVarError
,unusedPrivateFunction ,memsetClassFloat ,mallocOnClassWarning
,operatorEq ,thisSubtraction ,operatorEqRetRefThis ,operatorEqToSelf
,useInitializationList ,duplInheritedMember ,assignIfError
,comparisonError ,multiCondition ,mismatchingBitAnd
,oppositeInnerCondition ,incorrectLogicOperator ,redundantCondition
,moduloAlwaysTrueFalse to their CWEs ids.
|
2016-02-26 23:53:52 +00:00 |
Alexander Mai
|
41dee7f970
|
#7399 CMake error: Cannot specify link libraries for target 'testrunner' (reported by user dbuchholz). Add comment to mathlib.h
|
2016-02-19 21:40:31 +01:00 |
Alexander Mai
|
5c2960713f
|
Correct false positives compareBoolExpressionWithInt (0U)
|
2016-02-19 21:38:54 +01:00 |
Robert Reif
|
0fc59d0228
|
#7069 False positive invalidPrintfArgType_uint - %lu with 0ul
|
2016-02-19 10:12:47 +01:00 |
Daniel Marjamäki
|
d964825c9f
|
ValueType: Add debug output that is shown when --verbose is used
|
2016-02-15 16:18:24 +01:00 |
Alexander Mai
|
17bb07d522
|
#6913 max-configs=1 buggs out includefile resolving in case of circular dependency. Use simplified paths for internal list of includes parsed already
|
2016-02-14 11:51:18 +01:00 |
Daniel Marjamäki
|
6c324013e7
|
Use MAXTIME in templatesimplifier
|
2016-02-12 12:05:32 +01:00 |
Daniel Marjamäki
|
cef6b35bb8
|
Improve MAXTIME handling
|
2016-02-11 16:10:52 +01:00 |
Dmitry-Me
|
1f27c4b76b
|
Merge pull request #771 from Dmitry-Me/charUsedAsArrayIndex
Portability warning when 'char' type is used as array index
|
2016-02-10 20:11:38 +03:00 |
Daniel Marjamäki
|
3da997e163
|
astyle formatting
[ci skip]
|
2016-02-08 10:44:04 +01:00 |
Daniel Marjamäki
|
1ab5805d98
|
Fixed #6616 (valueFlowForward: for loop, variable in 3rd expression is changed in loop body)
|
2016-02-08 10:43:41 +01:00 |
Dmitry-Me
|
c3399493ef
|
Portability warning when 'char' type is used as array index
|
2016-02-08 10:08:35 +03:00 |
Daniel Marjamäki
|
c63d5cb1ae
|
CheckLeakAutoVar: fix in VarInfo::erase for referenced.
|
2016-02-07 19:54:32 +01:00 |
Daniel Marjamäki
|
a361f0192d
|
More CheckLeakAutoVar debug output
|
2016-02-07 19:53:55 +01:00 |
Daniel Marjamäki
|
34b5e0ce99
|
Fixed #6873 (False positive uninitvar - variable initialized via pointer)
|
2016-02-07 18:48:57 +01:00 |
Daniel Marjamäki
|
5fef7cc050
|
Fixed #4973 (wrong enum simplification of shadow struct variable)
|
2016-02-07 15:15:20 +01:00 |
Daniel Marjamäki
|
6c1012a8d6
|
Fixed #4625 (wrong enum simplification in shadowed enum declaration)
|
2016-02-07 13:51:03 +01:00 |
Daniel Marjamäki
|
f781f13997
|
Fixed #6806 (wrong enum simplification in initialization list)
|
2016-02-07 13:34:03 +01:00 |
PKEuS
|
f8bf2b5776
|
Removed rest of variableHidingTypedef and variableHidingEnum checking
|
2016-02-06 20:55:41 +01:00 |
Daniel Marjamäki
|
42278dd133
|
Tokenizer: skip constant folding in normal token list for C code. In C++ code we should only fold constants in template arguments.
|
2016-02-06 17:25:51 +01:00 |
amai2012
|
d25258359a
|
#7251 Remove checks variableHidingTypedef and variableHidingEnum
|
2016-02-06 15:37:58 +01:00 |
Daniel Marjamäki
|
7bd034c009
|
Fixed #7369 (False positive knownConditionTrueFalse - assertions)
|
2016-02-06 14:37:44 +01:00 |
PKEuS
|
b3a0d418e6
|
Refactorization: Compare only as much characters as necessary in Preprocessor
Fixed internal message
|
2016-02-05 21:06:07 +01:00 |
PKEuS
|
c66db46f66
|
Use ValueType in CheckOther::checkSignOfUnsignedVariable()
Fixed travis: replaced std::string::pop_back by std::string::substr
|
2016-02-05 20:43:06 +01:00 |
PKEuS
|
0847d3d19a
|
ValueType related bugfixes:
- ptrdiff_t is SIGNED
- Detect pointers to unknown types as pointers
- Do not identify bool* as boolean (#7381)
|
2016-02-05 20:29:17 +01:00 |
PKEuS
|
b4b38fb7ce
|
Use ValueType in CheckOther::invalidPointerCast()
False negative: operator new is currently not supported by ValueType.
|
2016-02-05 20:28:43 +01:00 |
PKEuS
|
4b3feebbcd
|
Refactorization: Reordered some conditions in checktype.cpp
|
2016-02-05 20:28:43 +01:00 |
PKEuS
|
6215a48dc9
|
Support member variables in CheckBool::checkAssignBoolToFloat()
|
2016-02-05 20:28:42 +01:00 |
PKEuS
|
e71e9bd538
|
CheckBool: Rely on ValueType, removed a redundant check
|
2016-02-05 15:48:51 +01:00 |
PKEuS
|
618ea498e9
|
ValueType: Support logical operators
|
2016-02-05 15:15:13 +01:00 |
PKEuS
|
35317695d4
|
ValueType: Fixed handling of constness
|
2016-02-05 13:31:31 +01:00 |
PKEuS
|
792835cd9a
|
ValueType: Support ++/--.
|
2016-02-05 12:06:44 +01:00 |
PKEuS
|
2b179dc836
|
ValueType: Properly support ternary operator with pointers (#7378)
|
2016-02-05 09:59:48 +01:00 |
Daniel Marjamäki
|
07f3930923
|
report progress in TemplateSimplifier::simplifyTemplateInstantiations, as far as I see it can be very slow
|
2016-02-05 07:59:29 +01:00 |
PKEuS
|
3b7948fb4e
|
ValueType: Support ternary operator
|
2016-02-04 21:20:05 +01:00 |
PKEuS
|
a9f52aec04
|
ValueType: Support unary arithmetical/bit operators
|
2016-02-04 21:03:54 +01:00 |
PKEuS
|
cae19cadd3
|
ValueType: Added support for static member variables and simplified code
|
2016-02-04 20:49:13 +01:00 |
PKEuS
|
b801386ac8
|
Fixed bug in Token::findClosingBracket() and broken unit test (#7277)
|
2016-02-04 10:00:54 +01:00 |
Alexander Mai
|
d3546ea410
|
#7321 segmentation fault in valueFlowSwitchVariableScope::isVariableDeclaration
|
2016-02-03 22:49:57 +01:00 |
Alexander Mai
|
cfe9c01bf8
|
#7257 segmentation fault in valueFlowSwitchVariable (invalid code). Correct SymbolDatabase::validateVariables() so it does not complain about function arguments for function without body
|
2016-02-03 21:52:02 +01:00 |
PKEuS
|
bd61b9e7b7
|
Merge pull request #776 from boos/cwe-mapping-0
Mapped 17 error ids to their CWEs …
|
2016-02-03 17:54:53 +01:00 |
Alexander Mai
|
d45f5c94cb
|
Add (disabled) function in SymbolDatabase to check variable list (e.g. find variables w/o scope). Fix some doxygen warnings.
|
2016-02-03 17:08:46 +01:00 |
Roberto Martelloni
|
50fc784550
|
Mapped error ids stlBoundaries, stlcstr, useAutoPointerContainer, useAutoPointerArray, sprintfOverlappingData, strPlusChar, shiftTooManyBits, integerOverflow, uninitstring, uninitdata, uninitvar, uninitStructMember, deadpointer, va_start_referencePassed, va_end_missing, va_list_usedBeforeStarted, va_start_subsequentCalls to their CWEs.
|
2016-02-03 12:53:23 +00:00 |
Alexander Mai
|
d12197ce1a
|
Minor refactoring, removing a redundant condition introduced in the previous changeset
|
2016-02-03 12:54:44 +01:00 |
Alexander Mai
|
ca2e3b9abb
|
#7370 False positive uselessCallsCompare on unknown type. Ensure related warnings are only issued on STL types
|
2016-02-02 20:26:02 +01:00 |
PKEuS
|
e063e97831
|
Fixed bug in Token::swapWithNext(): swap _link correctly
|
2016-02-02 17:47:36 +01:00 |
PKEuS
|
d8b75e3492
|
Fixed several bugs when deleting and swapping tokens
|
2016-02-02 17:30:14 +01:00 |
PKEuS
|
841f17776b
|
Set ValueType for assignment operators, detect division by zero for %= and /= again (#7322)
|
2016-02-02 17:17:55 +01:00 |
PKEuS
|
4b9241f643
|
Removed support for patterns like |a|b and a||b (equal to a|b|)
-> Improved performance by 1,3% (non-matchcompiled build)
|
2016-02-02 11:46:42 +01:00 |
PKEuS
|
d19b5031fa
|
Refactorization: Removed unused function.
|
2016-02-02 11:46:42 +01:00 |
Alexander Mai
|
89c9528fdc
|
Small optimization of TokenList::validateAst()
|
2016-02-02 08:55:26 +01:00 |
Daniel Marjamäki
|
39a5400b7d
|
Fix xml output for invalid chars (#6431)
|
2016-02-01 18:53:46 +01:00 |
Alexander Mai
|
a288d5eb16
|
#7027 TokenList::validateAst() did not detect broken AST with endless recursion
|
2016-01-31 22:16:58 +01:00 |
Daniel Marjamäki
|
5784aec407
|
Settings: fixed defaultSign, it only applies to char
|
2016-01-31 14:40:06 +01:00 |
Daniel Marjamäki
|
988918c9bc
|
ValueType: Use signed as default sign for short/int/long/longlong
|
2016-01-31 14:34:26 +01:00 |
PKEuS
|
c831577322
|
Removed handling of misspelled error ID stlBoundaries in Suppressions
|
2016-01-31 14:06:47 +01:00 |
Daniel Marjamäki
|
b54613a942
|
Fixed #7046 (constexpr value used as template parameter reported as not used)
|
2016-01-31 12:39:43 +01:00 |
PKEuS
|
9d2258677d
|
Improved CheckOther::checkUnusedLabel(): Write a warning instead of a style message if it happens inside a switch()
|
2016-01-31 12:07:24 +01:00 |
Daniel Marjamäki
|
c7f5ca74bd
|
VarId: Set varid for template parameters (#7046)
|
2016-01-31 11:07:30 +01:00 |
PKEuS
|
6d0c2f7253
|
Fixed false positive useClosedFile when noreturn function is called (#7359)
|
2016-01-31 10:39:35 +01:00 |
PKEuS
|
0e8777ec99
|
Fixed crash on garbage code (#7356)
|
2016-01-31 10:25:09 +01:00 |
PKEuS
|
c31f7c7a48
|
Improved flags in gui.pro:
- shlwapi.lib is not necessary if dynamic linking is used
- Do not define _CRT_SECURE_NO_WARNINGS explicitly, it gets defined anyway.
|
2016-01-31 10:10:48 +01:00 |
PKEuS
|
4d01af3fe1
|
Fixed false positive in CheckMemoryLeakStructMember when returning a member that has been allocated (#7302).
|
2016-01-31 10:10:48 +01:00 |
Daniel Marjamäki
|
f6161c6f89
|
CheckUnusedVar: My fix for #4955 was a quick fix causing false negatives. Fix some FN and add TODO to handle other FN better.
|
2016-01-31 09:11:52 +01:00 |
Daniel Marjamäki
|
d5884692df
|
Fixed #7363 (valueflowOppositeCondition - if (size1 > size2) ... else if (size1 < size2) ...)
|
2016-01-30 22:13:03 +01:00 |
PKEuS
|
3b046b42a6
|
Support function pointers in CheckUnusedVar::checkFunctionVariableUsage_iterateScopes() (#7194)
|
2016-01-30 20:59:55 +01:00 |
Daniel Marjamäki
|
b908bb18a9
|
Fixed #5503 (FP: Uninitialized variable - initialize in in if and else branch)
|
2016-01-30 20:48:28 +01:00 |
PKEuS
|
923f7f843d
|
Better distinguishing between possible and known null pointer dereferenciations (#7157)
|
2016-01-30 20:43:40 +01:00 |
Matthias Krüger
|
11be3a9265
|
fix internal warning: [lib/valueflow.cpp:722]: (warning) Found simple pattern inside Token::Match() call: "if ("
|
2016-01-30 20:34:33 +01:00 |
PKEuS
|
5d9f275ff8
|
Fixed false positive uninitMemberVar with member function of template (#7205)
|
2016-01-30 20:18:13 +01:00 |
PKEuS
|
23ad881c64
|
Fixed false positive returnLocalVariable (#7180)
|
2016-01-30 20:18:12 +01:00 |
Daniel Marjamäki
|
30f2bb7796
|
ValueFlow: set known value for opposite condition in else if (#5503)
|
2016-01-30 20:03:55 +01:00 |
Daniel Marjamäki
|
fd67ca146d
|
Fixed #4955 (false positive: Variable 'i' is assigned a value that is never used (only used in template instantiation))
|
2016-01-30 16:49:39 +01:00 |
Daniel Marjamäki
|
0e89620212
|
Fixed #4698 (False positive: Uninitialized member variable warning with confusing namespaces)
|
2016-01-30 14:04:48 +01:00 |
Daniel Marjamäki
|
f3f9ea2d09
|
TemplateSimplifier: One more fix for #3130. Restored max recursion count to 100 and improve pattern for reference template instantiations instead.
|
2016-01-30 11:22:44 +01:00 |