Daniel Marjamäki
|
3625d179e5
|
value flow: don't perform value flow analysis in sizeof/typeof expressions
|
2014-01-11 21:10:01 +01:00 |
Daniel Marjamäki
|
680d3f1312
|
value flow: fixed fp for nested assignments
|
2014-01-11 20:53:23 +01:00 |
Daniel Marjamäki
|
4d045879aa
|
value flow: fixed fp when while condition contains variable that is changed in loop body
|
2014-01-11 20:25:49 +01:00 |
Daniel Marjamäki
|
75f9111775
|
value flow: bailout when variable is used in assignment to itself
|
2014-01-11 15:36:09 +01:00 |
Daniel Marjamäki
|
1fc2c9fe79
|
ast: fixed syntax tree for statement enclosed in parentheses ';(expr);'
|
2014-01-11 15:18:39 +01:00 |
Daniel Marjamäki
|
ceca6be22b
|
Fixed #5334 (False positive: same expression on both sides of '||')
|
2014-01-11 15:15:01 +01:00 |
Daniel Marjamäki
|
eaf8c83db5
|
value flow: refactoring. broke out function for skipping value simplifications in expressions.
|
2014-01-11 14:54:10 +01:00 |
Daniel Marjamäki
|
85dcb14813
|
value flow: bailout in valueFlowBeforeCondition if variable can be assigned by subfunction
|
2014-01-11 14:31:51 +01:00 |
Daniel Marjamäki
|
225001a45c
|
value flow: changed astparent lookup
|
2014-01-11 12:47:47 +01:00 |
Daniel Marjamäki
|
02b92efd1a
|
value flow: improved analysis of expressions below ?, && and || operators
|
2014-01-11 12:44:55 +01:00 |
Daniel Marjamäki
|
60348da1b5
|
value flow: fixed fp for rhs in && and || expressions
|
2014-01-11 11:30:34 +01:00 |
Daniel Marjamäki
|
1ad94a8be5
|
value flow: loosen up bailouts in valueFlowSubFunction
|
2014-01-11 07:52:25 +01:00 |
Daniel Marjamäki
|
57d241793f
|
value flow: fix segfault if var is null
|
2014-01-10 18:30:41 +01:00 |
Daniel Marjamäki
|
c687933e9f
|
value flow: improved handling of for loops
|
2014-01-10 18:19:24 +01:00 |
Daniel Marjamäki
|
3eebc8a9f1
|
test1
|
2014-01-10 16:51:58 +01:00 |
Daniel Marjamäki
|
3e7f692d4d
|
value flow: stop checking global variable when going out of function scope
|
2014-01-10 16:17:19 +01:00 |
Daniel Marjamäki
|
acb103e214
|
value flow: skip scopes that don't contain variable
|
2014-01-10 16:13:39 +01:00 |
Daniel Marjamäki
|
81513b4346
|
value flow: Readded safety check that tok->astOperand1() is not NULL
|
2014-01-10 05:54:03 +01:00 |
Daniel Marjamäki
|
d085705e8f
|
value flow: assume that value of global const variable is not changed
|
2014-01-10 05:47:56 +01:00 |
Daniel Marjamäki
|
a26c5736da
|
Library: Allow loading xml data from memory
|
2014-01-09 21:58:56 +01:00 |
Daniel Marjamäki
|
752e9d0fb7
|
Tokenizer::varId: Fixed wrong varid for shadow types with same names as class members
|
2014-01-09 21:44:29 +01:00 |
Daniel Marjamäki
|
1be30bf022
|
ast: fixed handling of templates
|
2014-01-09 17:14:16 +01:00 |
XhmikosR
|
f9dd9676be
|
Fix the C4099 warning.
|
2014-01-09 16:58:42 +02:00 |
Daniel Marjamäki
|
04cb56e070
|
ast: fixed trouble with 'ab=a+(b/(c))+d;' where the '(c)' could be mistaken for a cast
|
2014-01-08 21:49:42 +01:00 |
Daniel Marjamäki
|
4f11086505
|
Tokenizer: Don't remove parentheses in 'a?b:(c>0?d:e)'
|
2014-01-08 20:53:33 +01:00 |
Daniel Marjamäki
|
32f2ee422f
|
value flow: fixed segfault and added more handling of unsigned values
|
2014-01-08 20:10:38 +01:00 |
Daniel Marjamäki
|
644004573b
|
Preprocessor: fixed 8.0E+007 in macros
|
2014-01-08 18:05:14 +01:00 |
Daniel Marjamäki
|
7c4a7ac3d5
|
value flow: starting to refactor CheckNullPointer::nullPointerDeRefThenCheck
|
2014-01-08 17:37:39 +01:00 |
Daniel Marjamäki
|
26a72d73fe
|
value flow: improved subfunction handling when using && or || in function argument
|
2014-01-08 16:49:15 +01:00 |
Daniel Marjamäki
|
a2fe1ebe92
|
value flow: pass result of bool operator to function
|
2014-01-08 16:17:47 +01:00 |
Daniel Marjamäki
|
6d22c9deaa
|
value flow: if unsigned variable is compared against 1 with either >= or <= then assume it can have the value 0
|
2014-01-08 06:53:17 +01:00 |
Daniel Marjamäki
|
1e3c43e708
|
value flow: improved bailouts in ?:
|
2014-01-08 06:39:15 +01:00 |
Daniel Marjamäki
|
dfee044925
|
value flow: Fixed wrong value in subfunction after conditional return
|
2014-01-08 06:04:51 +01:00 |
Daniel Marjamäki
|
1fb0b1750c
|
value flow: Fixed FP in ?:
|
2014-01-07 19:46:13 +01:00 |
Daniel Marjamäki
|
740f72fdbd
|
value flow: simple handling of for loops
|
2014-01-07 19:20:56 +01:00 |
Martin Ettl
|
fa04273473
|
Merge branch 'master' of https://github.com/danmar/cppcheck
|
2014-01-06 18:51:15 +01:00 |
Daniel Marjamäki
|
126f2ed423
|
Fixed Visual Studio compiler error
|
2014-01-06 18:14:29 +01:00 |
Daniel Marjamäki
|
a6320a35e0
|
value flow: added experimental subfunction handling
|
2014-01-06 16:37:52 +01:00 |
Daniel Marjamäki
|
58fb2e756b
|
Value flow: added bailout on }
|
2014-01-06 11:27:56 +01:00 |
Daniel Marjamäki
|
39b47cc1e7
|
value flow: improved error message output for conditional division by zero
|
2014-01-06 10:51:17 +01:00 |
Daniel Marjamäki
|
a5b79bc968
|
value flow: fixed bailout so it really bails out
|
2014-01-06 10:23:17 +01:00 |
Zachary Blair
|
4a2da09491
|
minor cleanups. initialize members in initialization list
|
2014-01-06 08:02:04 +01:00 |
Daniel Marjamäki
|
c4fa3bb137
|
value flow: added bailouts for global variables and assignments
|
2014-01-06 07:44:58 +01:00 |
Daniel Marjamäki
|
c32d0f1992
|
CheckInternal: Improved checking of multiCompare patterns. The multiCompare pattern can contain any %cmd% until there is non-%cmd% used. For instance %var%|%num% is handled ok.
|
2014-01-05 23:03:36 +01:00 |
Daniel Marjamäki
|
a98c66b048
|
Fixed Token::Match pattern. See also #5310
|
2014-01-05 23:02:07 +01:00 |
Daniel Marjamäki
|
4620284cbf
|
astyle formatting
|
2014-01-05 22:06:11 +01:00 |
Daniel Marjamäki
|
62c608141d
|
CheckInternal: Improved checking of multiCompare patterns
|
2014-01-05 21:15:41 +01:00 |
Daniel Marjamäki
|
0877adb542
|
astyle formatting
|
2014-01-05 21:12:32 +01:00 |
Daniel Marjamäki
|
afaf1473a8
|
Value flow: refactorings, write debug warning if iterating too far
|
2014-01-05 20:06:46 +01:00 |
Graham Whitted
|
86201c13cb
|
Fixed #5097 (TemplateSimplifier::expandTemplate assertion failure)
|
2014-01-05 19:19:52 +01:00 |
Alexander Mai
|
77362fd671
|
Fixed #5289 (Crash: Stack overflow in isImplicitlyVirtual_rec when checking SVN)
|
2014-01-05 19:10:16 +01:00 |
Daniel Marjamäki
|
29c64cc34c
|
Merge pull request #209 from simartin/ticket_5266
Ticket #5266: Properly tokenize "complex" static variable declarations.
|
2014-01-05 04:44:22 -08:00 |
Daniel Marjamäki
|
deb3699bd8
|
value flow: Updated Visual Studio files
|
2014-01-05 09:52:37 +01:00 |
Daniel Marjamäki
|
9fabc7991a
|
value flow: fixed segfault when checking lib/mathlib.cpp
|
2014-01-04 21:28:15 +01:00 |
Daniel Marjamäki
|
45278eadc7
|
value flow: fixed bugs
|
2014-01-04 21:23:17 +01:00 |
Daniel Marjamäki
|
d8270c710a
|
Add new experimental value flow analysis
|
2014-01-04 20:57:02 +01:00 |
Daniel Marjamäki
|
f1054a50f6
|
Merge pull request #208 from simartin/ticket_5201
Ticket #5201: Get rid of internal error when checking valid C input for leaks
|
2014-01-04 05:18:44 -08:00 |
Daniel Marjamäki
|
93a9cb40df
|
Fixed #5310 (Internal error: match compiler returned different result than parsed match)
|
2014-01-04 13:53:54 +01:00 |
Simon Martin
|
d2cf9fd77c
|
Ticket #5266: Properly tokenize "complex" static variable declarations.
|
2014-01-04 10:49:27 +01:00 |
PKEuS
|
55f68535b2
|
Set version to "1.64 dev"/1.63.99. Use version.h in cppcheck.cpp.
|
2014-01-04 10:41:13 +01:00 |
Daniel Marjamäki
|
6515691a47
|
1.63: Set version numbers
|
2014-01-04 09:32:37 +01:00 |
Simon Martin
|
6019f45249
|
Ticket #5201: Get rid of internal error when checking valid C input for memory leaks.
|
2014-01-03 23:27:56 +01:00 |
Daniel Marjamäki
|
7125682d1a
|
Fixed #5274 (TokenList: macro handling)
|
2014-01-03 18:53:37 +01:00 |
Robert Reif
|
cbe3862599
|
Fixed #5264 (Size specifier in printf functions is wrong for some types)
|
2014-01-03 15:58:45 +01:00 |
Alexander Mai
|
10ff45b54a
|
Fixed #5306 (Implement --showtime=top5)
|
2014-01-03 10:45:14 +01:00 |
Alexander Mai
|
ea10a722fc
|
Fixed #5306 (Implement --showtime=top5)
|
2014-01-03 10:24:57 +01:00 |
Zachary Blair
|
7a6386bc4b
|
Fixed #4867 (Memory Leak: Return value of malloc)
|
2014-01-03 10:12:32 +01:00 |
Alexander Mai
|
f93d21c8df
|
Fixed #5303 (Possible NULL pointer dereference in checkassert.cpp)
|
2014-01-03 09:32:05 +01:00 |
Daniel Marjamäki
|
a94fccf51a
|
astyle formatting
|
2014-01-02 21:47:35 +01:00 |
Sam Truscott
|
4333dd3c75
|
Update Qt to support Markup structure
|
2014-01-02 18:18:24 +01:00 |
Daniel Marjamäki
|
b08880f20f
|
Library: Changed ignorefunction to a set
|
2014-01-02 17:28:24 +01:00 |
Daniel Marjamäki
|
372c29c24e
|
Fixed #5284 (duplicateExpression falsely reported by members of a union in some circumstances)
|
2014-01-02 16:58:07 +01:00 |
Daniel Marjamäki
|
2f91539d1d
|
Preprocessor: don't insert macroChar inside .1 and 1. tokens
|
2014-01-02 11:21:23 +01:00 |
Daniel Marjamäki
|
a1b0d190df
|
Fixed #3688 (false positive: (inconclusive, posix) (warning) The buffer 'cBuffer' is not zero-terminated after the call to readlink().)
|
2014-01-02 10:46:19 +01:00 |
Alexander Mai
|
12df5300ba
|
Fixed #5290 (Doxygen fixes (32be409 ))
|
2014-01-01 20:46:00 +01:00 |
Martin Ettl
|
5a5277f2fa
|
Tokenizer::simplifyVarDecl: Fixed crash when checking garbage code.
|
2014-01-01 19:15:32 +01:00 |
Martin Ettl
|
0dccd3a632
|
Tokenizer:simplifyFlowControl(): Fixed crash on garbage code.
|
2014-01-01 19:04:02 +01:00 |
Daniel Marjamäki
|
d62055277d
|
Fixed #4787 (False Positive: Unused private function)
|
2014-01-01 18:36:51 +01:00 |
Alexander Mai
|
5539e9ea0f
|
Fixed #5279 (False positive: warning (uninitMemberVar): Member variable 'ToDoubleArray::mfNaN' is not initialized in the constructor. (modified #5170 example))
|
2014-01-01 18:34:39 +01:00 |
Daniel Marjamäki
|
cd65d8e54f
|
Fixed #5169 (Preprocessor::removeComments : Bad handling of __asm)
|
2014-01-01 12:44:59 +01:00 |
Daniel Marjamäki
|
32be4094e7
|
Symbol database: only put variables in variable list
|
2013-12-31 17:51:56 +01:00 |
PKEuS
|
621cf6e777
|
Support arrays as template parameters in TemplateSimplifier::templateParameters
|
2013-12-31 13:59:32 +01:00 |
PKEuS
|
6f76dfcb22
|
Forward declare tinyxml type used in library.h to avoid problems with dynamic linked configuration.
|
2013-12-31 12:30:17 +01:00 |
Daniel Marjamäki
|
803182bf45
|
Reverted 'GUI: Added CFGDIR qmake flag' there are various installation problems and this only fixes one of them.
|
2013-12-31 10:35:34 +01:00 |
Daniel Marjamäki
|
7e71c41ba7
|
Preprocessor: Don't insert macroChar inside 1.f and 1.e+7 as that mess it up later. Thanks ettlmartin for telling me about this.
|
2013-12-31 10:24:14 +01:00 |
Daniel Marjamäki
|
8da0d84905
|
Library: fixed crash in Library::load if exename is NULL
|
2013-12-30 18:35:27 +01:00 |
Daniel Marjamäki
|
99703e1a3f
|
Preprocessor: make sure 1E-7, 1E+7, 1e+7 in macros is output as a single token. Putting a macroChar before the 7 mess it up later.
|
2013-12-30 18:03:24 +01:00 |
PKEuS
|
4f0121ee2f
|
Splitted simplification out of tokenize()
|
2013-12-30 17:45:28 +01:00 |
Daniel Marjamäki
|
c143b02e67
|
GUI: Added CFGDIR qmake flag
|
2013-12-30 09:01:44 +01:00 |
Daniel Marjamäki
|
582baa5648
|
Preprocessor: make sure 1e-7 is output as a single token. puttin a macroChar before the 7 mess it up later.
|
2013-12-29 21:51:01 +01:00 |
Daniel Marjamäki
|
41e4194573
|
Tokenizer: set links for <> in 'a=new b<c>;' code
|
2013-12-29 15:37:27 +01:00 |
Daniel Marjamäki
|
f2661dae4c
|
astyle formatting
|
2013-12-29 13:44:13 +01:00 |
Daniel Marjamäki
|
e13aa0dbc3
|
Fixed #5275 (FP mismatchAllocDealloc: user defined opendir()/closedir() on non-POSIX system)
|
2013-12-29 09:51:29 +01:00 |
Daniel Marjamäki
|
ef3d3f2d40
|
Temporary fix for #5263 until tinyxml2 handle folders better. When https://github.com/leethomason/tinyxml2/issues/147 is fixed this should be reverted.
|
2013-12-28 21:57:13 +01:00 |
Daniel Marjamäki
|
4b72f01e99
|
clarify calculation: Fixed FP for 'a = (*p ? 1 : 2)'
|
2013-12-28 11:02:39 +01:00 |
Daniel Marjamäki
|
e0eb000ac3
|
AST: Fixed problem with decrement
|
2013-12-27 14:40:59 +01:00 |
Daniel Marjamäki
|
d3a848f2e6
|
Makefile: Added optional CFGDIR parameter that allows user to specify where Cppcheck will look for cfg files.
|
2013-12-26 18:41:51 +01:00 |
Daniel Marjamäki
|
742a6935ea
|
Calculation in sizeof: Fixed FP for sizeof(Fred**)
|
2013-12-26 13:52:58 +01:00 |
Daniel Marjamäki
|
29e74222fb
|
Sizeof calculation: Fixed FP for sizeof(int*[2])
|
2013-12-26 13:41:21 +01:00 |
Daniel Marjamäki
|
5d5e347418
|
AST: better handling of 'sizeof(void*)'
|
2013-12-25 22:08:53 +01:00 |
Daniel Marjamäki
|
915cb6c757
|
Fixed #5261 (AST: cast not handled well (a::b&)x)
|
2013-12-25 21:19:28 +01:00 |
Daniel Marjamäki
|
aa65799c19
|
pointerArithBool: Updated error message
|
2013-12-25 19:56:00 +01:00 |
Daniel Marjamäki
|
6182394966
|
Uninitialized variables: Fixed false positive taking value of pointer that is allocated but not initialized
|
2013-12-25 14:00:27 +01:00 |
Daniel Marjamäki
|
eb2ea1c28f
|
AST: refactored CheckSizeof::sizeofCalculation()
|
2013-12-25 12:35:41 +01:00 |
Daniel Marjamäki
|
26dfddac6b
|
UninitVar: Fixed false positive when checking if allocated pointer is null
|
2013-12-24 12:48:17 +01:00 |
Daniel Marjamäki
|
4c44e62159
|
AST: Refactored CheckOther::clarifyCalculation
|
2013-12-24 10:07:20 +01:00 |
Daniel Marjamäki
|
753559fff3
|
Uninitialized variables: Don't warn about try/catch exception variables
|
2013-12-24 07:39:15 +01:00 |
Daniel Marjamäki
|
042d3afb80
|
CheckOther::checkDuplicateExpression: Readded warnings when there is a expression between the duplicate expressions 'X || Y || X'
|
2013-12-24 07:21:46 +01:00 |
Daniel Marjamäki
|
ac30a84c3a
|
Refactoring: Replaced CheckOther::checkCCTypeFunctions with configuration
|
2013-12-23 19:58:33 +01:00 |
Daniel Marjamäki
|
a3dd65caee
|
Fixed #5126 (new check: missing pointer dereference or pointer overflow 'if (p+1)')
|
2013-12-23 18:39:05 +01:00 |
Daniel Marjamäki
|
661784a170
|
Fixed #5255 (False positive (error) Uninitialized variable: ptr2 - calling a static member function)
|
2013-12-23 16:50:27 +01:00 |
Daniel Marjamäki
|
e2fa6a291c
|
Uninitialized variables: Fixed false negatives for loop variables / pointer dereference
|
2013-12-23 12:27:00 +01:00 |
Daniel Marjamäki
|
596b4bd405
|
astyle formatting
|
2013-12-23 12:26:12 +01:00 |
Daniel Marjamäki
|
e747b6c49b
|
Merge pull request #202 from simartin/ticket_5214
Ticket #5214: Added test case (ticket already fixed in mainline).
|
2013-12-23 02:49:25 -08:00 |
Daniel Marjamäki
|
76b907fe65
|
Fixed #5252 (Improve check: use Library to validate function arguments in invalidFunctionUsage)
|
2013-12-23 10:06:45 +01:00 |
Daniel Marjamäki
|
be03d4718a
|
Library: Added <valid> element that is used to define valid input values for functions
|
2013-12-22 19:10:14 +01:00 |
Daniel Marjamäki
|
85c62f98d7
|
Library: added <markup> element
|
2013-12-22 18:44:31 +01:00 |
Simon Martin
|
02dc49624d
|
Ticket #5214: Don't read out of bounds upon invalid ternary operator.
|
2013-12-22 18:13:52 +01:00 |
Daniel Marjamäki
|
4769838b80
|
Library: Refactoring of markup code
|
2013-12-22 17:03:46 +01:00 |
Daniel Marjamäki
|
e2bc99aa24
|
Fixed #5154 (Tokenizer: wrong handling of msvc 'for each')
|
2013-12-17 06:34:27 +01:00 |
Daniel Marjamäki
|
762806499f
|
Fixed #5182 (Tokenizer::simplifyEnum: template function call as enum value)
|
2013-12-16 07:07:00 +01:00 |
Daniel Marjamäki
|
92305ed1f9
|
Fixed #5170 (False positive: warning (uninitMemberVar): Member variable 'ToDoubleArray::mfNaN' is not initialized in the constructor.)
|
2013-12-15 14:07:29 +01:00 |
Daniel Marjamäki
|
a948b4f4b0
|
Revert "Preprocessor:removeParentheses: fixed potential buffer access out of bounds, if find returns std::string::npos."
This reverts commit 4fbe15c866 .
As far as I see there can't be buffer access out of bounds. line always contain a '('.
|
2013-12-15 13:41:07 +01:00 |
Daniel Marjamäki
|
7938692b01
|
Fixed #5212 (Tokenizer::simplifyEnum bad simplification of enum value (1<<0)|(1<<1))
|
2013-12-15 07:47:04 +01:00 |
Daniel Marjamäki
|
f599e3184c
|
Fixed #5174 (Tokenizer: member function 'abort' returns)
|
2013-12-14 11:12:48 +01:00 |
Daniel Marjamäki
|
fdcb6634df
|
Fixed #5190 (FP Use const reference to avoid data copying)
|
2013-12-14 08:46:18 +01:00 |
Daniel Marjamäki
|
98b6fa2eaf
|
SymbolDatabase: Use std::size_t for Function::getArgument() argument since Function::argCount() returns a std::size_t
|
2013-12-14 08:35:46 +01:00 |
Daniel Marjamäki
|
57ecdd693c
|
Fixed #5149 (false positive: (error) Dereferencing 'memory' after it is deallocated / released)
|
2013-12-14 07:37:24 +01:00 |
Daniel Marjamäki
|
80dec5a976
|
Uninitialized variables: Fixed FP when taking address of uninitialized variable
|
2013-12-13 20:10:22 +01:00 |
Daniel Marjamäki
|
7fe923bfc5
|
Uninitialized variables: Fixed FP when the variable is initialized in do-while condition
|
2013-12-13 13:27:01 +01:00 |
Daniel Marjamäki
|
abdd29fce3
|
fixed FP when passing uninitialized buffer as 2nd argument to itoa
|
2013-12-13 07:51:33 +01:00 |
Daniel Marjamäki
|
3e6fbc6517
|
Fixed uninitialized variable FP after realloc if it fails. Related with ticket: #5240
|
2013-12-13 07:15:59 +01:00 |
Daniel Marjamäki
|
08cd0cd0f7
|
CheckOther::checkDuplicateExpression: Added TODO comment to readd checking for duplicate separated expressions
|
2013-12-13 06:40:35 +01:00 |
Daniel Marjamäki
|
d2493fa3cb
|
CheckMemoryLeak: Report OtherRes leaks as resource leak
|
2013-12-12 18:23:42 +01:00 |
Daniel Marjamäki
|
35189e80f2
|
Uninitialized variables: Fixed false positive for '*p=..'
|
2013-12-12 15:33:31 +01:00 |
Daniel Marjamäki
|
7321f92eff
|
CheckUninitVar: Fix Coverity warning about possible null pointer.
|
2013-12-12 12:36:49 +01:00 |
Daniel Marjamäki
|
1b86615a69
|
Uninitialized variables: Fixed false positive for 'p=malloc; if (p) {}'
|
2013-12-12 11:44:07 +01:00 |
orbitcowboy
|
4fbe15c866
|
Preprocessor:removeParentheses: fixed potential buffer access out of bounds, if find returns std::string::npos.
|
2013-12-09 01:40:51 -08:00 |
Daniel Marjamäki
|
4e7594748d
|
Uninitialized variables: Fixed false positive for 'p=malloc; if (python tools/daca2.py b)'
|
2013-12-12 09:17:41 +01:00 |
Daniel Marjamäki
|
9f62740e1d
|
Fixed #5236 (varid 0: vlc: src/misc/objects.c:126)
|
2013-12-12 08:44:00 +01:00 |
Daniel Marjamäki
|
a4f9cb78d5
|
Uninitialized variables: Fixed false positives when passing allocated pointer to function
|
2013-12-11 05:54:42 +01:00 |
Daniel Marjamäki
|
ef15e40de5
|
Uninitialized variables: error when passing uninit pointer to function
|
2013-12-10 18:36:16 +01:00 |
Daniel Marjamäki
|
83066edec0
|
Code cleanup
|
2013-12-10 06:29:06 +01:00 |
Daniel Marjamäki
|
5ba02d2fdd
|
AST: Always use AST
|
2013-12-09 18:06:19 +01:00 |
Daniel Marjamäki
|
be5c00d215
|
Uninitialized variables: check function arguments
|
2013-12-09 15:58:42 +01:00 |
Daniel Marjamäki
|
14a00046a3
|
Fixed #5207 (Struct uninitialized members useage is not giving error (malloc).)
|
2013-12-04 20:32:20 +01:00 |
Simon Martin
|
fe75686595
|
Ticket #5203: Don't crash when checking buffer overrun for invalid code.
|
2013-11-30 07:40:32 +01:00 |
Daniel Marjamäki
|
0c5282b1af
|
Fixed #5081 (False positive: (error) Uninitialized variable: f (handling of C-cast not correct))
|
2013-11-28 16:04:47 +01:00 |
Daniel Marjamäki
|
771dc2e1ad
|
AST: Improved handling when calling function through function pointer hidden within parantheses '(a.f)(1,2)'
|
2013-11-27 06:17:00 +01:00 |
Daniel Marjamäki
|
3b11ee9e0e
|
AST: Improved handling of brackets
|
2013-11-25 20:58:40 +01:00 |
Daniel Marjamäki
|
d8b25da73c
|
Fixed #4740 (False Positive: Uninitialised variable 'int *a[2][19]; int **b = a[0];')
|
2013-11-25 06:38:23 +01:00 |
Daniel Marjamäki
|
da540a3bb3
|
AST: Improved astIsFloat handling of expressions
|
2013-11-25 04:26:15 +01:00 |
Daniel Marjamäki
|
abdf2bb9d4
|
AST: fixed isSameExpressions handling of ({..})
|
2013-11-25 04:08:28 +01:00 |
Daniel Marjamäki
|
94e2bf7a11
|
AST: Handle ({..})
|
2013-11-25 04:07:44 +01:00 |
Robert Reif
|
43f00942dd
|
Fixed #5197 (SymbolDatabase: bad handling of unknown macros in function declaration)
|
2013-11-25 03:43:39 +01:00 |
Daniel Marjamäki
|
13cd0f41f6
|
AST: Fixed FP in isSameExpression when there are different casts
|
2013-11-24 15:17:08 +01:00 |
Alexander Mai
|
38b2f6b9b0
|
Fixed #5168 (segmentation fault (invalid code) in Tokenizer::simplifyVarDecl)
|
2013-11-24 11:07:11 +01:00 |
Daniel Marjamäki
|
8b77b7711c
|
Merge pull request #199 from simartin/ticket_5168
Ticket #5168: Don't crash when simplifying bit-fields for invalid code.
|
2013-11-24 01:55:02 -08:00 |
Simon Martin
|
9817da00ec
|
Ticket #5168: Don't crash when simplifying bit-fields for invalid code.
|
2013-11-23 20:33:03 +01:00 |
Daniel Marjamäki
|
4fe6951b4c
|
Library: Fixed loading of 'resource'
|
2013-11-23 18:16:40 +01:00 |
Daniel Marjamäki
|
7fc07989a7
|
UninitVar: Fixed false positive 'data is allocated but not initialized' when there is assignment
|
2013-11-23 10:24:29 +01:00 |
Robert Reif
|
0afdbc73da
|
Fixed #5195 (Crash below CheckIO::checkWrongPrintfScanfArguments())
|
2013-11-23 08:40:35 +01:00 |
Daniel Marjamäki
|
8cca41774d
|
Fixed #4446 (Crash on complex C++ template)
|
2013-11-21 20:27:24 +01:00 |
Daniel Marjamäki
|
2c1f579b3b
|
Library: Fixed formatstr handling
|
2013-11-21 16:32:53 +01:00 |
orbitcowboy
|
b74db1b791
|
Tokenize:simplifyFloatCast(): added corresponding suffix, incase of type 'float'.
|
2013-11-20 23:58:43 -08:00 |
Alexander Mai
|
7d45e9be73
|
Fixed #5122 (duplInheritedMember on private variables)
|
2013-11-21 05:39:23 +01:00 |
Daniel Marjamäki
|
ef108c49ec
|
Tokenizer: simplify enums better. add parentheses to enforce operator precedence.
|
2013-11-20 18:04:28 +01:00 |
Daniel Marjamäki
|
e8eeb90adb
|
AST: Fixed 'same expression' false positives (git merge --squash s, <<, >>)
|
2013-11-20 16:18:09 +01:00 |
Daniel Marjamäki
|
27a40b10e1
|
AST/incorrectLogicOperator: Better handling of large doubles where x+1=>x
|
2013-11-20 06:33:34 +01:00 |
Daniel Marjamäki
|
6869d0de30
|
AST: Handle L'x'
|
2013-11-20 05:57:56 +01:00 |
Daniel Marjamäki
|
47b98470eb
|
Tokenizer: Simplify float casts of integer constants
|
2013-11-19 18:07:12 +01:00 |
Daniel Marjamäki
|
f8cf64afef
|
Fixed #4710 (Template parser bug: const in constructor changes template names)
|
2013-11-19 06:07:25 +01:00 |
Daniel Marjamäki
|
4e003c392e
|
AST: code cleanup. Remove unreachable 'break' after 'return'
|
2013-11-18 23:24:58 +01:00 |
Daniel Marjamäki
|
45ee3b0fba
|
AST: Refactoring new checkIncorrectLogic checking
|
2013-11-18 23:09:14 +01:00 |
Daniel Marjamäki
|
ff5f223a1d
|
Fixed #5116 (false positive: memset on class (nested struct))
|
2013-11-18 16:56:00 +01:00 |
Daniel Marjamäki
|
033cb19656
|
Same expression: Don't write warnings for same expression on both sides of arithmetical operators
|
2013-11-17 17:21:39 +01:00 |
Daniel Marjamäki
|
71e61fb1ed
|
Uninitialized variables: Fixed false positive when using ?:
|
2013-11-17 12:42:53 +01:00 |
Daniel Marjamäki
|
77e09d72a1
|
Uninitialized variables: Fixed false negatives when using ({})
|
2013-11-17 12:11:18 +01:00 |
Daniel Marjamäki
|
d342387b95
|
Uninitialized var: Fixed false negatives for self assignment
|
2013-11-16 18:07:33 +01:00 |
Daniel Marjamäki
|
2a640a59c2
|
Tokenizer: Improved handling of pointer aliases. This fixes some false negatives.
|
2013-11-16 17:30:04 +01:00 |
Martin Ettl
|
feb54a46fb
|
Merge branch 'master' of https://github.com/danmar/cppcheck
|
2013-11-10 05:06:00 +01:00 |
Daniel Marjamäki
|
cfd6b0c384
|
UninitVar: fixed false negatives for function calls
|
2013-11-16 12:02:21 +01:00 |
Daniel Marjamäki
|
8c7e3d14aa
|
Fixed #5119 (Preprocessor: Using -D suppresses __cplusplus for C++ files)
|
2013-11-15 19:21:21 +01:00 |
Daniel Marjamäki
|
30720affd6
|
Tokenizer::setVarId: Fixed hang when checking libgc
|
2013-11-15 16:16:22 +01:00 |
Daniel Marjamäki
|
5af2fe6e5b
|
AST: improved 'incorrect logic' checking when there are nested expressions
|
2013-11-15 06:51:35 +01:00 |
Daniel Marjamäki
|
d1721b9d1b
|
AST: Improved 'same expression on both sides of operator' checking for nested operators
|
2013-11-15 06:35:46 +01:00 |
Daniel Marjamäki
|
203d3e916b
|
Fixed #5173 (false positive Variable XX is reassigned a value before the old one has been used)
|
2013-11-14 16:10:00 +01:00 |
Daniel Marjamäki
|
673400920d
|
AST: Fixed 'a[1][2]'
|
2013-11-13 17:52:56 +01:00 |
Daniel Marjamäki
|
7fe51eb58b
|
Fixed #4989 (False positive: Wrong processing of __asm block)
|
2013-11-13 06:04:00 +01:00 |
Daniel Marjamäki
|
1ecade2657
|
AST: don't warn about duplicate expressions around '+' operator. It might be more efficient than using for instance '*2'
|
2013-11-11 20:03:59 +01:00 |
Daniel Marjamäki
|
58d7caded1
|
AST: improved handling of casts
|
2013-11-11 16:39:34 +01:00 |
Martin Ettl
|
3bf415fa2b
|
checkbufferoverrun: improved constness of local variables. checkbufferoverrun:array_index(): added a bailout if the function is called with tok=NULL and added a NULL pointer check after a dynamic_cast.
|
2013-11-10 05:05:31 +01:00 |
Martin Ettl
|
347e1eae20
|
Fixed #5162: Tokenizer:simplifyInitVar: Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer tok2 returned by tok2->next() is never used (CID 1124084).
|
2013-11-10 00:40:42 +01:00 |
Daniel Marjamäki
|
4027848761
|
incorrectLogicOperator: fixed FP when comparing char values. improved handling of float comparisons.
|
2013-11-10 18:06:51 +01:00 |
Daniel Marjamäki
|
807f62520c
|
Fixed crash caused by endless recursion in redundant assignments check
|
2013-11-10 17:20:40 +01:00 |
Alexander Mai
|
687aeb4f5f
|
Fixed #5158 (segmentation fault (valid code))
|
2013-11-10 16:22:52 +01:00 |
Daniel Marjamäki
|
bb746261d3
|
AST: Fixed crash
|
2013-11-10 15:51:33 +01:00 |
Daniel Marjamäki
|
85b41059c5
|
astyle formatting
|
2013-11-10 15:49:53 +01:00 |
Daniel Marjamäki
|
4ed4d71b3c
|
CheckOther::checkIncorrectLogicOperator(): cleanup
|
2013-11-10 14:24:09 +01:00 |
Daniel Marjamäki
|
0dd17f9fad
|
Merge pull request #198 from simartin/ticket_5073
Ticket #5073: Don't crash upon invalid do-while loop.
|
2013-11-10 03:09:16 -08:00 |
Daniel Marjamäki
|
cadb284a3d
|
Refactored the AST checking of CheckOther::checkIncorrectLogicOperator()
|
2013-11-10 11:59:18 +01:00 |
Martin Ettl
|
babbee4e73
|
Fixed typos in comments, no functional changes.
|
2013-11-09 16:07:28 +01:00 |
Simon Martin
|
185b88c6e3
|
Ticket #5073: Don't crash upon invalid do-while loop.
|
2013-11-08 23:13:21 +01:00 |
Daniel Marjamäki
|
20b84fcdee
|
Null pointers: Don't warn when first argument to freopen() is NULL
|
2013-11-08 13:22:07 +01:00 |
Robert Reif
|
52df31b501
|
Fixed #5153 ((debug) Scope::checkVariable found variable ')')
|
2013-11-08 12:56:32 +01:00 |
Robert Reif
|
a6ef3a224a
|
Fixed #5151 (false negative: improper formatstring - vector::at())
|
2013-11-08 12:44:05 +01:00 |
Daniel Marjamäki
|
b0ce42565e
|
AST: Added experimental new implementations for CheckAssignIf::comparison, CheckOther::checkIncorrectLogicOperator and CheckOther::checkDuplicateExpression
|
2013-11-07 14:38:08 +01:00 |
orbitcowboy
|
43103c84d8
|
Checkother:memsetZeroBytes: removed not needed '\n' from verbose message.
|
2013-11-07 05:15:36 -08:00 |
orbitcowboy
|
3d47ae9463
|
checkother:memsetZeroBytes: improved verbose message.
|
2013-11-06 06:42:27 -08:00 |
orbitcowboy
|
86aa2a27ab
|
checkother: improved constness of local variables, no functional change.
|
2013-11-06 06:15:32 -08:00 |
Daniel Marjamäki
|
a572c0b728
|
AST : cleanup unused functions
|
2013-11-06 12:38:58 +01:00 |
Martin Ettl
|
4eba02d901
|
Checkbufferoverrun: improved constness of local variables, no functional changes.
|
2013-11-03 04:48:41 +01:00 |
Daniel Marjamäki
|
fb04c8ff84
|
Fixed #5107 (redundantAssignment when pointer changes)
|
2013-11-04 23:46:07 +01:00 |
Daniel Marjamäki
|
7996d609be
|
Fixed #5108 (false positive: uninitialized variable (assignment in function parameter))
|
2013-11-04 23:09:15 +01:00 |
orbitcowboy
|
929cda6696
|
fixed #5141: Tokenizer: Dereference before null check (Scan.coverity id 1061759)
|
2013-11-04 03:53:23 -08:00 |
Daniel Marjamäki
|
8ff412fcee
|
Fixed #5142 (False positive with floating-point special cases in conditions)
|
2013-11-04 11:56:43 +01:00 |
Daniel Marjamäki
|
dde46527f3
|
AST: Handle ternary operators
|
2013-11-04 11:44:54 +01:00 |
Daniel Marjamäki
|
de29991c11
|
AST: Rewrite using standard approach
|
2013-11-04 11:26:16 +01:00 |
Daniel Marjamki
|
9959c2866c
|
AST: fixed hang for ',&x..'
|
2013-11-03 15:05:58 +01:00 |
Daniel Marjamki
|
bcc8384a95
|
Fixed #5145 (False Positive: Variable 'A' hides enumerator with same name)
|
2013-11-03 09:34:48 +01:00 |
Daniel Marjamäki
|
5f0cfa0ee4
|
Fixed #4983 (False positive warning 'Possible null pointer dereference: lblList - otherwise it is redundant to check it against null.' with sizeof lblList[0])
|
2013-11-02 23:56:10 +01:00 |
Daniel Marjamäki
|
769b4617c3
|
Fixed #5142 (False positive with floating-point special cases in conditions)
|
2013-11-02 22:58:23 +01:00 |
Daniel Marjamäki
|
a50e5c2c23
|
Merge pull request #195 from simartin/ticket_5139
Ticket #5139: Properly handle recursive macro definitions
|
2013-11-02 11:21:13 -07:00 |
Daniel Marjamäki
|
c505f5ea23
|
Fixed AST problem for 'if ((a.b&c)==d){}'
|
2013-11-02 19:18:58 +01:00 |
Daniel Marjamäki
|
bbdfd8b5c7
|
Make it possible to create AST, by using the --ast flag
|
2013-11-02 18:37:35 +01:00 |
Daniel Marjamäki
|
f0a621a952
|
Tokenizer: Added MAXTIME so cppcheck can be compiled with a hard max time. Will be used for the daca2.
|
2013-11-02 17:31:14 +01:00 |
Simon Martin
|
95c08d5613
|
Ticket #5139: Properly simplify recursive macro definitions
|
2013-11-01 16:47:22 +01:00 |
Robert Reif
|
ac3b1c0611
|
Fixed #5134 (Memory leak below CheckIO::checkWrongPrintfScanfArguments())
|
2013-11-01 05:42:37 +01:00 |
Martin Ettl
|
083af88801
|
Checkio: removed redundant NULL-pointer check, introduced by me.
|
2013-11-01 00:18:13 +01:00 |
Martin Ettl
|
3e13408da2
|
Merge branch 'master' of https://github.com/danmar/cppcheck
|
2013-10-31 20:03:13 +01:00 |
Martin Ettl
|
897533ab93
|
Checkio: fixed potential NULL-pointer dereference (Coverity-ScanId: CID 1113428).
|
2013-10-31 20:03:05 +01:00 |
XhmikosR
|
a60252ce7b
|
Fix compilation error with VS after e446a28b3d .
|
2013-10-31 20:56:47 +02:00 |
Martin Ettl
|
5156481db4
|
Library: return false from load() when tinyxml::FirstChildElement() return a NULL pointer.
|
2013-10-31 19:49:36 +01:00 |
Daniel Marjamäki
|
e446a28b3d
|
Refactoring FileLister and Path so they don't depend on Library
|
2013-10-31 19:09:01 +01:00 |
Martin Ettl
|
c529de6e07
|
Library: tinyxml2::FirstChildElement() is capable of returning 0. This fixes a waring of scan.coverity(): CID 1113430 (#1 of 1): Dereference null return value (NULL_RETURNS)
|
2013-10-29 00:36:27 +01:00 |
Daniel Marjamäki
|
d3bd373798
|
Fixed #5131 (False Positive: %u in format string requires 'unsigned int' but the argument type is 'int'.)
|
2013-10-31 17:20:00 +01:00 |
Daniel Marjamäki
|
352c459e28
|
Merge pull request #194 from simartin/ticket_5121
Ticket #5121: Handle static variable declarations depending on one another
|
2013-10-30 22:09:44 -07:00 |
Alexander Mai
|
14787cde99
|
Fixed #5129 (FP:arithOperationsOnVoidPointer on void**)
|
2013-10-31 06:04:51 +01:00 |
Daniel Marjamäki
|
06c5bd0daa
|
Fixed #5128 (False positive zerodivcond 'a ? 1 / a : 0')
|
2013-10-30 16:51:00 +01:00 |
Simon Martin
|
d67722ebdf
|
Ticket #5121: Handle comma separated static variable declarations depending on one another
|
2013-10-30 15:48:00 +01:00 |
Simon Martin
|
463ef2e71e
|
Ticket #5120: New test case, that works now that #5125 is fixed
|
2013-10-30 10:15:03 +01:00 |
Simon Martin
|
052be76635
|
Ticket #5125: Avoid infinite recursion for recursive class definitions
|
2013-10-29 21:41:47 +01:00 |
Daniel Marjamäki
|
5c072993e3
|
CheckBool: Fixed false negative when assigning bool to pointer '; s.p = true; '
|
2013-10-29 16:16:52 +01:00 |
orbitcowboy
|
30984ff649
|
Tokenize: improved const correctness of local variables, no functional change.
|
2013-10-25 01:34:53 -07:00 |
orbitcowboy
|
76e092428a
|
Tokenize: improved const correctness of local variables, no functional change.
|
2013-10-25 01:31:55 -07:00 |
Daniel Marjamäki
|
514277e91b
|
Library: Fixed bug. Continue if there is no errors.
|
2013-10-27 17:38:39 +01:00 |
PKEuS
|
bd752cabcf
|
Let TinyXML2 handle fopen/fclose. Added testlibrary.cpp to VS10 solution
|
2013-10-27 17:32:38 +01:00 |
Daniel Marjamäki
|
e0244d343d
|
Library: Fixed resource leak
|
2013-10-27 17:17:54 +01:00 |
Daniel Marjamäki
|
569a29bc4a
|
Library: Added simple testing
|
2013-10-27 17:10:43 +01:00 |
PKEuS
|
c95b153700
|
Refactorizations:
- Removed some redundant operator=, copy-ctor and dtor implementations
- use operator[] instead of at() in library loading code
|
2013-10-27 13:55:13 +01:00 |