Daniel Marjamäki
2108251851
Fixed #5417 (ast: avoid hang when '({})' is used)
2014-01-28 06:11:53 +01:00
Daniel Marjamäki
b8b573321e
CheckNullPointer: Update std.cfg and test that updates are correct
2014-01-27 17:33:16 +01:00
Daniel Marjamäki
6e6de82323
CheckMemoryLeak: test alloc/dealloc configuration in posix.cfg
2014-01-27 16:51:18 +01:00
Daniel Marjamäki
c8a1424e10
Fixed #5406 (crash inside valueFlowBeforeCondition() on files from kernel-git)
2014-01-27 06:18:42 +01:00
Daniel Marjamäki
2b8cf462c9
CheckMemoryLeak: Move posix-opendir/closedir to library
2014-01-26 17:02:36 +01:00
Daniel Marjamäki
87b67e9b77
TestNullPointer: Added test configuration for 'memcmp' that is needed by a test
2014-01-26 16:32:28 +01:00
Daniel Marjamäki
0c47555423
CheckNullPointer: use library instead of hard coded info
2014-01-26 16:19:49 +01:00
Daniel Marjamäki
be082a8e4a
value flow: added bailout for conditional return/continue/break when number_of_if is bigger than 0
2014-01-26 15:50:25 +01:00
Daniel Marjamäki
c5971b7137
value flow: fix fp when conditional value is assigned
2014-01-25 20:14:49 +01:00
Daniel Marjamäki
c1e35e1df1
value flow: fixed multivariable problem in condition
2014-01-25 19:13:33 +01:00
Daniel Marjamäki
df0995edf5
Fixed #5403 (Value flow: FP because post increment/decrement is not handled correctly)
2014-01-25 18:31:02 +01:00
Daniel Marjamäki
bc9ad08831
Fixed #5245 (false positive: Uninitialized variable (assignment inside ternary operator))
2014-01-25 10:12:50 +01:00
Daniel Marjamäki
35b51468cb
value flow: Fixed FP for division then check in for loop: 'for (a=b/x;x>0;x--)'
2014-01-25 09:22:32 +01:00
Daniel Marjamäki
4647a9fc93
Fixed #5401 (value flow: fp when there are increment/decrement)
2014-01-24 18:22:38 +01:00
Daniel Marjamäki
1cac7e1686
value flow: better handling in function call bailout of casting address of variable
2014-01-24 17:47:49 +01:00
Tobias Weibel
9d55265e6b
Replaced duplicated logf(2.0) with logf(2.0f) unittest
2014-01-23 16:19:30 +01:00
Daniel Marjamäki
ec034c1d59
Fixed #5386 (ast: hang when code is 'for (T a : b)')
2014-01-23 06:13:24 +01:00
Daniel Marjamäki
0dbb86f0cb
Cleanup ExecutionPath from CheckBufferOverrun
2014-01-22 21:25:37 +01:00
Daniel Marjamäki
1d7bb05faf
Remove ExecutionPath from CheckNullPointer
2014-01-22 20:24:51 +01:00
Daniel Marjamäki
f3f7e6d302
value flow: replacing executionpath checking of null pointers
2014-01-22 20:16:31 +01:00
Daniel Marjamäki
43db1ee797
value flow: use more specific bailouts when analysing value flow after assignment
2014-01-22 06:38:25 +01:00
Daniel Marjamäki
cc38dec3ad
value flow: a bit better handling of assigned variable
2014-01-22 06:10:17 +01:00
Daniel Marjamäki
a27ccbd0f8
value flow: start implementing value flow analysis of assigned value
2014-01-21 21:13:49 +01:00
Daniel Marjamäki
b91f42453b
value flow: improved handling of cast
2014-01-20 22:26:55 +01:00
Daniel Marjamäki
bb3cc67aaa
value flow: improved calculations that depends on variable
2014-01-20 21:45:30 +01:00
Daniel Marjamäki
98305e9163
astyle formatting
2014-01-20 06:31:28 +01:00
Daniel Marjamäki
7ff7bc1c2e
Fixed #5376 (false positive: zerodivcond (style) Either the condition 'B>0' is useless or there is division by zero)
2014-01-19 20:16:55 +01:00
Daniel Marjamäki
84c5f47eb1
value flow: bailout for class variables that are non-const
2014-01-19 11:55:02 +01:00
Daniel Marjamäki
ccda78f347
value flow: fixed todo assertion for handling of conditions
2014-01-19 09:31:40 +01:00
Daniel Marjamäki
cdaa7abf7e
value flow: better handling of conditional code below || && ?: operators
2014-01-19 09:05:48 +01:00
Daniel Marjamäki
77f3f6c21a
valueflow: added setTokenValue that perform calculations using set value
2014-01-18 19:30:44 +01:00
Daniel Marjamäki
6a3a9ee8e7
ast: fixed tree for 'sizeof(struct S)'
2014-01-18 13:18:11 +01:00
Daniel Marjamäki
c7032a8867
value flow: improved handling of loops
2014-01-18 11:54:00 +01:00
Daniel Marjamäki
d0d56aee4a
TestValueFlow: split up valueFlowBeforeCondition into smaller functions
2014-01-18 08:45:24 +01:00
Daniel Marjamäki
3e23e243f6
BufferOverflow: Updated message for out of bounds array index or redundant condition
2014-01-17 19:44:45 +01:00
Daniel Marjamäki
57d318b2e5
valueflow: better handling of increment/decrement
2014-01-17 19:28:28 +01:00
Daniel Marjamäki
18d6285ad2
BufferOverrun: Improved error message when array index is used before checking that its in limits
2014-01-17 18:56:46 +01:00
Daniel Marjamäki
36acfb6d20
Fixed Cppcheck warning. db is dereferenced before its checked against NULL
2014-01-17 18:10:10 +01:00
Daniel Marjamäki
30cae358d8
Removed the --value-flow flag. ValueFlow analysis will always be enabled from now on.
2014-01-17 18:07:05 +01:00
Daniel Marjamäki
3facc06cb7
CheckOther: Removed non-valueflow check for division by possible zero before condition
2014-01-17 17:42:54 +01:00
Daniel Marjamäki
0203a4a6f5
Tokenizer: Removed simplifyGoto as it's the cause of various FPs I see
2014-01-17 17:36:45 +01:00
Daniel Marjamäki
4eb746d7cc
Tokenizer: Removed simplifyComparisonOrder
2014-01-17 17:25:56 +01:00
Daniel Marjamäki
0b4de97e2b
value flow: Use ValueFlow in CheckBufferOverrun
2014-01-16 19:23:14 +01:00
Daniel Marjamäki
85b73f7c24
ast: fixed hang for weird loop: 'for (each_window(list,p))'
2014-01-16 16:58:50 +01:00
Daniel Marjamäki
e72ec830ef
ast: fixed hang in for-loop handling
2014-01-16 06:45:35 +01:00
Daniel Marjamäki
141e089329
ast: different handling of for loops. create a syntax tree for whole 'f(a;b;c)'.
2014-01-15 17:32:14 +01:00
Daniel Marjamäki
d43191a9e3
value flow: remove duplicate test case
2014-01-14 18:13:17 +01:00
Daniel Marjamäki
c547c9a108
value flow: fixed fp when variable is used in for-loop condition
2014-01-14 17:57:50 +01:00
Daniel Marjamäki
e45a2e2c61
Fixed #5347 (False positive: uninitialized variable (try catch))
2014-01-14 06:24:09 +01:00
Robert Reif
d679a4c1f7
Fixed #5248 (False positive: Invalid argument in scanf for %zd)
2014-01-14 06:09:13 +01:00
Daniel Marjamäki
eb774054b0
Merge pull request #210 from matthiaskrgr/travis
...
travis: rewrite config file.
2014-01-13 10:44:36 -08:00
Daniel Marjamäki
7981e3d38f
value flow: fix fp when gotos are used
2014-01-13 16:07:25 +01:00
Daniel Marjamäki
b1bbb23225
value flow: fixed fp when checking symboldatabase
2014-01-13 05:52:28 +01:00
Matthias Krüger
962018b722
revert: commit f6da9d4e3c
...
"testcmdlineparser: comment out unused functions fileListStdin(), ignorepaths{1-4}(), ignorefilepaths{1,2}()"
instead suppress the files.
also suppress unused variable in test/testpreprocessor.cpp
2014-01-12 22:47:21 +01:00
Daniel Marjamäki
c9e9262682
value flow: use checknullpointer checking based on new value flow analysis in the TestNullPointer
2014-01-12 19:51:05 +01:00
Daniel Marjamäki
5d2a39b580
CheckNullPointer: improved function call checking when new value flow analysis is used
2014-01-12 19:27:26 +01:00
Daniel Marjamäki
2e67ca06c0
value flow: some simplifications in unknown functions when there is library configuration
2014-01-12 18:19:00 +01:00
Daniel Marjamäki
d700114edf
value flow: bailout if condition is defined by macro
2014-01-12 17:16:51 +01:00
Daniel Marjamäki
bef56d7a70
reverted change I pushed by mistake
2014-01-12 15:44:40 +01:00
Daniel Marjamäki
424675982a
dmake: use -std=c++0x instead of -std=c++11 as it's supported by earlier gcc
2014-01-12 15:38:51 +01:00
Heinrich Schuchardt
f6510a6b45
Fixed #5339 (Tokenizer::setVarId : function-pointer function argument not getting variable id, causing FP)
2014-01-12 15:15:09 +01:00
Daniel Marjamäki
3d79613f2b
value flow: more bailouts when return/break/continue/goto is reached. TODO: handle these better.
2014-01-12 15:07:58 +01:00
PKEuS
b775714e3d
Moved several hardcoded function names in format string checking into libraries (std.cfg and windows.cfg).
...
Added support for loading a library in test suite.
2014-01-12 03:44:24 -08:00
Daniel Marjamäki
d8262963d9
value flow: condition in loop, bailout valueflow analysis before loop if there is assignment inside the loop
2014-01-12 11:58:10 +01:00
Daniel Marjamäki
e3496080c8
Fixed #5334 (False positive: same expression on both sides of '||')
2014-01-12 07:40:56 +01:00
Daniel Marjamäki
f58e1ab80e
value flow: fixed fp in switch
2014-01-11 21:21:00 +01:00
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
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
4e7e56df9f
astyle formatting
2014-01-11 07:54:06 +01:00
Daniel Marjamäki
1ad94a8be5
value flow: loosen up bailouts in valueFlowSubFunction
2014-01-11 07:52:25 +01:00
Matthias Krüger
f6da9d4e3c
testcmdlineparser: comment out unused functions fileListStdin(), ignorepaths{1-4}(), ignorefilepaths{1,2}()
2014-01-10 21:08:12 +01:00
Matthias Krüger
4f918e1c8c
testsuite: remove function todoAssert() which is unused according to cppcheck.
2014-01-10 21:08:11 +01:00
Matthias Krüger
d9ce61a9d6
testsuite: according to cppcheck, the function printTests() is not used, remove it.
2014-01-10 21:08:11 +01:00
Matthias Krüger
6feb0faf4c
testbool: same for checkComparisonOfBoolWithBool
2014-01-10 21:08:11 +01:00
Matthias Krüger
3602cc2f6a
testsymboldatabase: run symboldatabase32, probably someone forgot to implement this.
2014-01-10 21:08:11 +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
acb103e214
value flow: skip scopes that don't contain variable
2014-01-10 16:13:39 +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
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
96b62c6ccb
Fix the C4800 warnings.
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
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
9c50deda64
value flow: reverted TestOther, don't use value flow in test cases yet
2014-01-08 16:18:50 +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
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
d172e9bb29
value flow: Fixed testing
2014-01-06 10:09:49 +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
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
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
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
PKEuS
574c27b1b2
Removed VS9 solution
2014-01-04 10:55:27 +01:00
Simon Martin
d2cf9fd77c
Ticket #5266 : Properly tokenize "complex" static variable declarations.
2014-01-04 10:49:27 +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
Zachary Blair
7a6386bc4b
Fixed #4867 (Memory Leak: Return value of malloc)
2014-01-03 10:12:32 +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
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
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
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
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
e13aa0dbc3
Fixed #5275 (FP mismatchAllocDealloc: user defined opendir()/closedir() on non-POSIX system)
2013-12-29 09:51:29 +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
872b6e8fcc
Fixed VS compiler warning. Using 'struct' for class. Thanks XhmikosR for reporting.
2013-12-26 17:48:25 +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
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
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
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
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
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
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
35189e80f2
Uninitialized variables: Fixed false positive for '*p=..'
2013-12-12 15:33:31 +01:00
Daniel Marjamäki
1b86615a69
Uninitialized variables: Fixed false positive for 'p=malloc; if (p) {}'
2013-12-12 11:44:07 +01: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
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
f686cd6516
astyle formatting
2013-12-04 20:54:37 +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
orbitcowboy
1798fc3645
testtokenize:simplifyFloatCasts(): Added testcases for double and long double.
2013-11-17 08:44:05 -08: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
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
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
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
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
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
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
Daniel Marjamäki
6ad2491817
AST: uninstantiated template
2013-11-04 22:58:47 +01: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
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
8910bae801
Fixed #5137 (Defining empty macro from commandline does not seem to work)
2013-11-03 09:46:03 +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
11abd23fa7
astyle formatting
2013-11-02 22:58:47 +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
Simon Martin
95c08d5613
Ticket #5139 : Properly simplify recursive macro definitions
2013-11-01 16:47:22 +01:00
Martin Ettl
5f89777182
testoptions: reverted commit 184db3900e
2013-11-01 01:28:05 +01:00
Martin Ettl
63d9fd4210
Merge branch 'master' of https://github.com/danmar/cppcheck
2013-10-29 01:48:58 +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
184db3900e
testoptions: fixed buffer access out of bounds issue. The ctor of options requires an array of at least two elements, but.
2013-10-29 01:48:30 +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
orbitcowboy
097510c4ef
Tokenizer:simplifyMathFunctions_fma: added a todo testcase.
2013-10-29 09:26:26 -07: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
e8fdf4cdd2
Tokenizer:simplifyMathExpressions: added more testcases.
2013-10-24 21:33:00 -07: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
569a29bc4a
Library: Added simple testing
2013-10-27 17:10:43 +01:00
Robert Reif
94187c41c2
Fixed #5104 (False positive: Invalid argument in printf and scanf for vector template)
2013-10-27 10:48:49 +01:00
Daniel Marjamäki
4a6274dcc0
Merge pull request #183 from felipensp/null_ptr_typeof
...
- Fixed false positive when passing pointer to typeof()
2013-10-27 02:37:31 -07:00
Daniel Marjamäki
ec3ab74631
Preprocessor: Use set instead of list to track '#pragma once' usage
2013-10-27 10:33:37 +01:00
Daniel Marjamäki
51ad9ab6ac
Fixed #4896 (FP Uninitialized variable on template function)
2013-10-26 18:39:40 +02:00
Daniel Marjamäki
8687e85e56
Fixed #4850 (False positive: invalidIterator1 detected when iterator container is member of some struct)
2013-10-26 17:48:20 +02:00
Daniel Marjamäki
853d9dd7a9
Fixed #4956 (false positive: Variable 'myIsFirst' is assigned a value that is never used.)
2013-10-26 15:22:28 +02:00
XhmikosR
32e2a5b879
test/testother.cpp: Fix a C4800 MSVC warning.
2013-10-25 18:14:16 +03:00
Daniel Marjamäki
364757e1e1
Fixed #5089 ('inconclusive' output printed although --inconclusive not specified)
2013-10-23 06:42:52 +02:00
Daniel Marjamäki
d1b03d9c31
Fixed false positive for 'object is destroyed immediately' when there is no code after the object
2013-10-22 19:37:11 +02:00
Daniel Marjamäki
a55056c770
Fixed #5105 (false positive: (warning) Either the condition 'b!=0' is useless or there is division by zero)
2013-10-22 16:18:42 +02:00
Daniel Marjamäki
fd0f2d7900
Fixed #4929 (False positive: possible null pointer deref (checks dont handle && and || well))
2013-10-22 10:47:48 +02:00
Sam Truscott
6806fd8135
Extended Qt support through Library
2013-10-20 14:09:10 +02:00
Daniel Marjamäki
fc26de89a9
Fixed #5082 (False positive: (error) Possible null pointer dereference: p2)
2013-10-20 13:37:36 +02:00
Daniel Marjamäki
5d7e0aebf4
Fixed #5084 (False positive: (style) Same expression on both sides of '&&')
2013-10-19 18:04:53 +02:00
Daniel Marjamäki
6aa03efa2f
Fixed #5103 (Don't show 'The scope of the variable can be reduced' if there is no explicit block with { })
2013-10-19 17:27:02 +02:00
Daniel Marjamäki
f8710cb984
Fixed #5102 (Crash if -D is used when scanning simple preprocessor code.)
2013-10-18 06:47:55 +02:00
Robert Reif
b41ab8a4d5
Fixed #5088 (Token::Match called with varid 0. in libreoffice sd/source/ui/table/TableDesignPane.cxx)
2013-10-14 21:05:54 +02:00
Felipe Pena
ecb0e70250
- Fixed false positive when passing pointer to typeof()
2013-10-12 10:19:15 -03:00
Robert Reif
1fccfd50eb
Fixed #5080 ((error) Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)
2013-10-12 10:50:59 +02:00
orbitcowboy
9debeab47c
Tokenizer:simplifyMathExpressions: fixed false negative patterns for simplification.
2013-10-11 11:58:37 -07:00
Daniel Marjamäki
bb0385321f
Fixed #5074 (False positive: Duplicate expression (macro))
2013-10-13 17:42:06 +02:00
Martin Ettl
a674ed1aa9
Tokenizer:simplifyMathFunction: added simplifcation for fma[f|l]() functions.
2013-10-13 16:28:02 +02:00
Martin Ettl
e18ebf313f
Tokenizer:simplifyMathFunctions: added support for more math functions.
2013-10-13 15:41:47 +02:00
Martin Ettl
cdb47813d5
Tokenizer:simplifyMathFunctions: added support for cosh[f|l], cos[f|l] and erfc[f|l] functions.
2013-10-13 14:23:10 +02:00
Felipe Pena
c37ba4cbcf
- Fixed false positive when using typeof/__alignof__
2013-10-12 13:46:14 -03:00
Daniel Marjamäki
783bb6eb0b
Test that there is no segfault in CheckOther::checkZeroDivisionOrUselessCondition when the SymbolDatabase is invalid. Ticket: #5045
2013-10-10 22:23:52 +02:00
orbitcowboy
6eaa2f2444
Tokenizer:simplifyMathFunctions: added support for acos[f|l] functions.
2013-10-09 07:59:32 -07:00
orbitcowboy
58c09f80b6
Testother: split up a large testfunction, no functional change.
2013-10-09 07:48:46 -07:00
Daniel Marjamäki
682e68b1b6
Fixed #5077 (False positive: Comparison of boolean result with relational operator ((X + (Y < 0)) <= b))
2013-10-09 05:43:50 +02:00
Martin Ettl
f08325284c
Tokenizer:simplifyMathFunctions: added support for acosh[f|l]() functions.
2013-10-07 22:10:58 +02:00
Daniel Marjamäki
9ce7efc6e4
commaSeparatedReturn: made checking experimental for now because there are false positives ( #5076 )
2013-10-08 18:05:07 +02:00
orbitcowboy
90b2c5ddce
testtokenize: split up large testcases for simplifying math functions.
2013-10-08 07:05:05 -07:00
Daniel Marjamäki
4f88fdcf4a
Check64Bit: Fixed false positive about returning integer for 'p+(n*80)'
2013-10-08 06:36:45 +02:00
Robert Reif
1959377423
Fixed #4963 (cppcheck and testrunner Visual Studio 2008 build failure)
2013-10-08 05:36:52 +02:00
Daniel Marjamäki
f9cf148012
CheckBool: Skip 'bool' type checking in C code
2013-10-07 18:41:07 +02:00
Daniel Marjamäki
b81de5494e
CheckBool: Fixed false positive for calculation using bool result in rhs
2013-10-07 18:01:08 +02:00
Daniel Marjamäki
d2025363d0
CheckBool: Fix false positive for '(a != boolexpr || c)' if a is a int
2013-10-07 17:44:19 +02:00
Daniel Marjamäki
83f9503839
CheckBool: Fixed false positives for non-bool expressions that contain ! operator
2013-10-07 16:37:51 +02:00
Daniel Marjamäki
023d0e7cb8
Fixed #5072 (False positive: comparisonOfBoolWithInvalidComparator even without explicit bool type)
2013-10-07 16:16:07 +02:00
Daniel Marjamäki
4cd0108b93
Fixed #4976 (False positive: (style) A pointer can not be negative (git/sha1_file.c))
2013-10-06 16:52:27 +02:00
Daniel Marjamäki
0ef1529ba5
Fixed #5005 (false positive: (warning) Assignment of function parameter has no effect outside the function.)
2013-10-06 16:07:27 +02:00
Daniel Marjamäki
1234ec95f0
Fixed #4998 (False positive: Address of local auto-variable assigned to a function parameter)
2013-10-06 14:23:26 +02:00
Daniel Marjamäki
9f23b7a1b4
Fixed #5063 (False positive for comparisonOfBoolWithInvalidComparator)
2013-10-06 10:39:08 +02:00
Daniel Marjamäki
c234cace6d
Fixed #5064 (Tokenizer::simplifySizeof: Doesn't simplify 'sizeof !! (a==1);' properly)
2013-10-06 08:20:10 +02:00
Daniel Marjamäki
946722faf0
Fixed #4968 (False positive: Structure with 'read' member is confused with read() function.)
2013-10-05 18:25:44 +02:00
Robert Reif
7098fc6039
CheckIO: fixed handling of unknown types. Ticket #5051
2013-10-05 16:47:06 +02:00
Daniel Marjamäki
6830d5f7a4
Fixed #5042 (false positive: Redundant code (set filled in initialization list))
2013-10-05 12:26:09 +02:00
Daniel Marjamäki
f2fdd967f5
Fixed #5046 (False positive: Boolean value assigned to pointer)
2013-10-05 08:53:37 +02:00
Daniel Marjamäki
348f3fa97f
Fixed #5058 (False positive: (warning) Comparison of a boolean expression with an integer.)
2013-10-05 08:33:33 +02:00
Robert Reif
5dbc02250f
This patch adds pointer to format string support to printf. Ticket: #5051
2013-10-05 07:47:52 +02:00
Robert Reif
44559a1fb2
Fixed #5069 (sizeof(void) when variable name is override)
2013-10-05 07:40:59 +02:00
Robert Reif
6c06cdd24d
CheckIO fixes. Ticket: #5051
2013-10-04 17:30:55 +02:00
Martin Ettl
a8cf8f0984
Tokenizer:simplifyMathFunctions: fixed false positives when simplifying special pow() cases.
2013-10-03 22:54:45 +02:00
Martin Ettl
f8bd33f2bc
Tokenizer:simplifyMathFunctions: added support for log()-functions. Improved testcases and documentation. The function simplifyMathFunctions() returns now true in case a simplifcation is made. This function is called within a while loop to guarantee all simplifications are made.
2013-10-03 20:52:07 +02:00
Martin Ettl
548e2f3fbf
Tokenizer:simplifyMathExpression: fixed false negatives in simplifying Pythagorean and Hyperbolic identities.
2013-10-03 15:41:12 +02:00
Robert Reif
59de30823e
CheckIO: This patch adds support for fprintf_s, fscanf_s and %I. Ticket: #5051
2013-10-03 06:37:40 +02:00
Robert Reif
5aba841499
CheckIO: Handling of casts ( #4964 )
2013-10-02 04:12:46 +02:00
Martin Ettl
fa5ee8fd13
Tokenizer: simplifyMathFunctions: added more simplifications for exp(), exp2() and log2() functions.
2013-10-01 20:30:59 +02:00
orbitcowboy
b6d7e797a2
Testtoken:matchNumeric(): extended testing about some missing testcases.
2013-09-30 15:55:36 -07:00
orbitcowboy
5a158987ce
Added todo testcase for false positive: Comparison of boolean with expression with an integer.
2013-09-30 11:21:28 -07:00
Robert Reif
cc6745fef6
CheckIO: Fixed false positives when using _snprintf_s and _snwprintf_s. Ticket: #5057
2013-10-01 05:49:44 +02:00
Martin Ettl
f0cbeb5233
simplifyMathFunctions: added support for exp(),sqrt(),cbrt() functions.
2013-09-29 18:11:17 +02:00
Robert Reif
c37c6617d3
Fixed #5057 (Microsoft secure printf/scanf support.)
2013-09-30 19:55:21 +02:00
Daniel Marjamäki
e3b7bce72b
Fixed #4907 (False positive 'uninitStructMember' on structs with unions)
2013-09-30 06:35:31 +02:00
Daniel Marjamäki
1c513f330a
Fixed #5055 (False negatives when using -I (external source code))
2013-09-29 18:59:27 +02:00
Robert Reif
d3798958f4
CheckIO: Fixed false positive when using wchar_t ( #5051 )
2013-09-29 15:25:18 +02:00
Martin Ettl
0527aefb11
Improved simplifyMathFunctions when simplifying special cases of pow(x,y)-function.
2013-09-29 15:11:09 +02:00
Daniel Marjamäki
973bdcc6d8
Fixed #4929 (false positive: Division by zero (standard function div()))
2013-09-29 11:13:49 +02:00
Robert Reif
c5723ab46a
CheckIO: Clarify format check warnings
2013-09-29 10:42:47 +02:00
Martin Ettl
5aaaff46ee
Fixed #5049 : new check: (warning) Comparison of two identical variables with isgreater(result,result) evaluates always to false.
2013-09-26 07:07:48 +02:00
Martin Ettl
805d082cd1
Tokenizer:simplifyMathFunction: added support for [ll]div() functions and corresponding unittests. The simplifcation is only performed, if a division by 1 is detected.
2013-09-26 07:01:08 +02:00
Steve Duan
cf0c666d79
Fixed #5041 (Improve check: support 'auto' for 'Iterator used after element has been erased')
2013-09-28 11:50:45 +02:00
Daniel Marjamäki
4a02ca8202
SymbolDatabase: handle method with unknown macro 'void f() MACRO {..}'
2013-09-28 11:44:26 +02:00
Daniel Marjamäki
c2a8f6f59a
astyle formatting
2013-09-28 09:32:41 +02:00
Simon Martin
d67a0add47
Ticket #5024 : Don't crash upon invalid code when checking auto variables.
2013-09-28 00:14:12 +02:00
Frank Zingsheim
67915749b0
Fixed #4723 (False positive: Pure virtual call within conditional clause)
...
conditional clauses directly in constructor/destructor cannot prevent
pure virtual function call otherwise this part of the code would never been called
2013-09-27 09:25:38 +02:00
Martin Ettl
32e1831716
#5046 - Added todo testcase
2013-09-26 01:03:34 +02:00
Martin Ettl
ea5bcfaa35
Fixed #5040 - simplify more math functions.
2013-09-26 00:44:16 +02:00
Frank Zingsheim
445d08d082
Fixed #4723 (False positive: Pure virtual call within conditional clause)
2013-09-26 17:25:16 +02:00
Robert Reif
44d86e97c0
Fixed #4920 (Microsoft ATL/MFC CString::Format argument checking)
2013-09-26 16:20:01 +02:00
Robert Reif
2de3ebcb1e
CheckIO: fixed some more false negatives. Ticket: #4964
2013-09-24 06:43:03 +02:00
Daniel Marjamäki
17c0bb3cab
revert 027e5cc8
. the div() standard function should not be reimplemented. create a different fix. Ticket: #4929
2013-09-23 18:01:15 +02:00
Daniel Marjamäki
698e9e2b59
reverted ee14ea4f
. I think this fix was too generic. If there is a union in the struct then only the union members should be skipped.
2013-09-23 17:52:42 +02:00
Daniel Marjamäki
ee14ea4fc2
Fixed #4907 (False positive "uninitStructMember" on structs with unions)
2013-09-23 07:20:20 +02:00
Daniel Marjamäki
64454068ec
Fixed #4934 (false positive: Uninitialized variable (loop with inner condition '(x=1)'))
2013-09-23 06:07:01 +02:00
Daniel Marjamäki
027e5cc860
Fixed #4929 (false positive: Division by zero (standard function div()))
2013-09-22 09:52:12 +02:00
Robert Reif
5c4c397372
CheckIO: add scanf argument type checking. Floating point and integer checking is complete but string checking is incomplete and character checking is missing. Ticket #4099
2013-09-22 06:56:31 +02:00
Alexander Mai
6eab4abaf2
Fixed #5030 (Segmentation fault below CheckMemoryLeakStructMember::isMalloc())
2013-09-21 18:10:29 +02:00
Daniel Marjamäki
965d8f0ecc
Fixed #5033 (segmentation fault (valid code) in CheckOther::checkZeroDivisionOrUselessCondition)
2013-09-21 17:44:25 +02:00
Martin Ettl
4cc153a6f3
Fixed #5032 : fix wrong unittest case in testtoken::matchNumeric.
2013-09-21 17:40:18 +02:00
Martin Ettl
d5f514c820
Fixed #5031 : simplify labs|fabs|abs(-1) to 1.
2013-09-21 16:59:06 +02:00
Daniel Marjamki
3de9431507
Fixed #5022 (Improve check: Division by zero or useless condition, function call)
2013-09-15 17:46:52 +02:00
Robert Reif
19745bbb7d
Fixed #5021 (Confusing message about %lf format in printf())
2013-09-15 16:38:45 +02:00
Ettl Martin
5a671f8914
Fixed #5023 (Add support for asinf,acosf,asinl,acosl (...) functions)
2013-09-13 19:49:25 +02:00
Robert Reif
4d82e37078
Fixed #5021 (Confusing message about %lf format in printf())
2013-09-12 05:54:05 +02:00
PKEuS
0439f25bbd
Fixed wrong unittest introduced in b36a887608
2013-09-10 12:57:28 +02:00
Robert Reif
9be2f6b5d4
Fixed #4964 (printf format argument check only supports simple variables)
2013-09-08 20:21:00 +02:00
Daniel Marjamäki
4b1254bc8d
Merge pull request #168 from simartin/ticket_4994
...
Ticket #4994 : Don't crash when checking variable scope for invalid input
2013-09-08 06:57:42 -07:00
Simon Martin
843833f907
Ticket #4994 : Don't crash when checking variable scope for invalid input.
2013-09-07 21:16:25 +02:00
Daniel Marjamäki
51ad747317
Fixed false positive in new 'x>-1<5' check when using templates
2013-09-07 18:24:35 +02:00
Daniel Marjamäki
6bb6506ce2
checkZeroDivisionOrUselessCondition: Fixed false positive when function is called and variable is passed to it
2013-09-07 16:18:11 +02:00
Daniel Marjamäki
08556d071e
Fixed #5016 (false negative: condition is always true / comparing boolean result with '<' (x > -1 < 5))
2013-09-07 11:32:11 +02:00
Daniel Marjamäki
83c460fc56
Fixed #5017 (New check: division by zero, otherwise condition is redundant)
2013-09-07 07:40:10 +02:00
Daniel Marjamäki
40c5924292
CheckIO: Handle classes derived from STL
2013-09-07 07:20:06 +02:00
Robert Reif
489a3a6e53
Fixed #5015 (strings not being concatinated properly)
2013-09-06 05:36:33 +02:00
Daniel Marjamäki
9000c233fa
Fixed #5012 (Hang when there is syntax error 'else }')
2013-09-05 06:38:07 +02:00
Robert Reif
2fe91e290c
CheckIo: Improved %d handling
2013-09-05 06:04:41 +02:00
Robert Reif
921a1aaa4f
CheckIO: Improved handling of %u
2013-09-05 01:46:58 +02:00
Daniel Marjamäki
3b8e9f5a2a
Fixed #4899 (False positive on unused variable)
2013-09-03 17:02:46 +02:00
PKEuS
05af4f82ce
Test GetShowErrorMessages in testcmdlineparser.cpp
2013-09-03 11:41:16 +02:00
PKEuS
b36a887608
Fixed false positive #5004
2013-09-03 10:54:10 +02:00
PKEuS
6b47ed414a
Fixed Function::retDef initialization:
...
- Move/Copy Constructors and Destructors do not have a return type neither
- Fixed crash in SymbolDatabase::printOut
- Added testing
2013-09-03 10:48:01 +02:00
Daniel Marjamäki
5d7518aa57
simplifyCalculations: Improved handling of casts ( #4899 )
2013-09-03 06:27:11 +02:00
Robert Reif
0dddd424a4
CheckIO: Improved handling of function return type
2013-09-03 05:50:19 +02:00
Daniel Marjamäki
6819f5ed18
Fixed #4860 (Segfault with another Clucene file)
2013-09-02 05:58:55 +02:00
Daniel Marjamäki
a781a83822
Preprocessor: Quicker response for --check-config. No 'normal' code is needed so skip it.
2013-09-01 07:13:48 +02:00
Robert Reif
8790f6d73f
Fixed #4999 (Crash with simple code snipped in rev ab30fa3
)
2013-08-31 18:58:55 +02:00
Robert Reif
05f2f0e419
CheckIO: improved type info - keep track of original typename.
2013-08-31 06:26:39 +02:00
Lucas Manuel Rodriguez
92b7280d13
Fixed #4995 (False positive - Using 'memset' on class that contains a virtual method) - Better fix
2013-08-30 22:06:20 -03:00
Lucas Manuel Rodriguez
c26674dc97
Fixed #4995 (False positive - Using 'memset' on class that contains a virtual method)
2013-08-30 08:46:33 -03:00
Daniel Marjamäki
4a1d1ce1a1
Fixed #3471 (Unused functions: take __attribute__((constructor)) in to consideration)
2013-08-30 06:27:46 +02:00
Robert Reif
fc435ae9aa
CheckIO: fix false negative for a function in a base class not being found, fix false positives and negatives for std::vector operator []
2013-08-30 05:41:59 +02:00
Lucas Manuel Rodriguez
acd65a6829
Fixed #4991 : False Positive - Dangerous usage of 'arr' (not null-terminated)
2013-08-29 08:12:05 -03:00
Robert Reif
2950eb08cb
CheckIO: fix some %I64 related false positives. Ticket: #4964
2013-08-29 05:49:16 +02:00
Daniel Marjamäki
3bd1d53c75
Fixed #4941 (segmentation fault (invalid code) in Tokenizer::setVarId)
2013-08-28 19:52:41 +02:00
Daniel Marjamäki
2eca0a93a7
Fixed #4733 (defective unusedStructMember warning)
2013-08-28 06:46:32 +02:00
Robert Reif
5c3315db7a
CheckIO: improved handling of functions returning pointers. Ticket: #4964
2013-08-28 05:57:40 +02:00
Daniel Marjamäki
5d7ebadf25
Fixed ¤4596 (False positive, Variable 'value' is not assigned a value (x = x >> value))
2013-08-27 15:57:38 +02:00
Daniel Marjamäki
4189d7db46
test
2013-08-27 06:47:06 +02:00
Robert Reif
228f6b1a87
Fixed #4984 (False positive: (warning) %f in format string (no. 1) requires a floating point number given in the argument list.)
2013-08-27 05:46:09 +02:00
Daniel Marjamäki
80093f0a40
Fixed #4689 (False positive: Unused private function (used in default argument of constructor))
2013-08-26 16:41:23 +02:00
Robert Reif
a1b9bb0688
CheckIO: Fix false positives for functions returning unknown types and false negatives for functions returning record types
2013-08-26 06:03:26 +02:00
Alexander Mai
450442287c
Fixed #4974 (CheckBufferOverrun::writeOutsideBufferSize() too strict)
2013-08-25 18:46:07 +02:00
Daniel Marjamäki
acdbbeee44
Fixed #4913 (Tokenizer::simplifyKnownVariables: wrong handling of *--p=0;)
2013-08-25 08:54:33 +02:00
Robert Reif
3d9383aabb
Fixed #4975 (False positive: (warning) %s in format string (no. 3) requires a char* given in the argument list. (git/column.c))
2013-08-25 08:32:10 +02:00
Robert Reif
3c6ca35e09
Fixed #4977 (improve platform type tokenize performance)
2013-08-25 08:29:24 +02:00
Daniel Marjamäki
b20f44cf6a
Merge pull request #167 from simartin/ticket_4450
...
Fix Ticket #4450
2013-08-24 14:12:44 -07:00
Robert Reif
26de3646e9
CheckIo: Revised patch that fixes bug in class function return type. Ticket: #4964
2013-08-24 22:34:52 +02:00
Simon Martin
b713a69b30
Ticket #4450 : Handle comma separated static variable declarations with initializers in brackets.
2013-08-24 22:27:54 +02:00
Lucas Manuel Rodriguez
a70b0cd0f3
Fixed FP: Null pointer dereference
2013-08-24 16:50:19 -03:00
Daniel Marjamäki
5ce7189bc0
Merge pull request #166 from last5bits/ticket4213
...
Fixing #4213 arrayIndexThenCheck and adding tests
2013-08-23 22:36:30 -07:00
Robert Reif
01fd156852
CheckIO: Start to add checking of function return types. Ticket: #4964
2013-08-24 07:25:50 +02:00
Alexey Zhikhartsev
d24a321ba2
Fixing #4213 arrayIndexThenCheck and adding tests
2013-08-23 19:04:01 +04:00
Daniel Marjamäki
9b4f6a6b3d
Fixed #4701 (false positive unusedFunction when using templates)
2013-08-23 06:47:52 +02:00
Robert Reif
5ce1933687
CheckIo: handle more complex variables
2013-08-23 05:35:57 +02:00
Alexander Mai
7fc6b1344b
Added testcases for #4801 (Cppcheck fails to parse Posix (crash in CheckOther::checkPipeParameterSize()))
2013-08-22 21:33:02 +02:00
Alexander Mai
986ec42d79
Fixed #4937 (false positive: Assert calls a function which may have desired side effects)
2013-08-22 06:38:54 +02:00
Daniel Marjamäki
c96586b2a9
"automatic conversion from iso-8859-1 formatting to utf-8"
2013-08-21 19:31:01 +00:00
Daniel Marjamäki
ef086ee4a9
Merge pull request #164 from last5bits/master
...
Don't include tinyxml from both lib.pri and test.pro
2013-08-21 07:24:56 -07:00
Daniel Marjamäki
f257c62858
Fixed #4846 (false positive: (warning) Comparison of a boolean with an integer.)
2013-08-21 16:17:19 +02:00
Lucas Manuel Rodriguez
006b8055e5
Fixed #4676 (Duplicated inherited member check)
2013-08-20 06:29:19 +02:00
Lucas Manuel Rodriguez
14d3886e19
Fixed #4965 (sizeof(void) check - error in message)
2013-08-20 06:20:52 +02:00
Robert Reif
707dfb4eea
Fixed #4964 (printf format argument check only supports simple variables)
2013-08-20 06:16:31 +02:00
Alexey Zhikhartsev
298cbd77ff
Don't include tinyxml from both lib.pri and test.pro
2013-08-19 19:44:29 +04:00
Daniel Marjamäki
342142b783
Fixed #4256 (Preprocessor: '#pragma once' doesn't work properly when using -D)
2013-08-18 18:04:06 +02:00
Robert Reif
914893013e
Symbol Database: improved type handling. Ticket: #4952
2013-08-17 18:43:15 +02:00
Simon Martin
5743416d3e
Ticket #4959 : Simplify {in,de}crements of known variables.
2013-08-16 23:51:00 +02:00
Daniel Marjamäki
538e4bd798
astyle formatting
2013-08-16 18:27:54 +02:00
Robert Reif
b777388fb8
Symbol database: improved type handling (fix problems in previous commit). Ticket: #4952
2013-08-16 05:42:12 +02:00
Daniel Marjamäki
33a948f816
Merge pull request #162 from simartin/ticket_4708
...
Fixed #4708 : prefix {in,de}crement too eagerly computed.
2013-08-15 20:35:38 -07:00
Daniel Marjamäki
5d7f30b88f
reassign var: better handling of struct members
2013-08-15 16:13:58 +02:00
Simon Martin
bf09191b78
Fixed #4708 : prefix {in,de}crement too eagerly computed.
2013-08-15 15:53:08 +02:00
PKEuS
dc439f65f8
Added some unit tests to improve test coverage in cmdlineparser
2013-08-15 11:09:40 +02:00
Daniel Marjamäki
f95b29db06
Improved handling of the __FILE__ macro
2013-08-14 06:36:03 +02:00
Daniel Marjamäki
fd26bad6fa
AssignIf: Improved handling of function calls
2013-08-13 14:08:54 +02:00
Daniel Marjamäki
c58c9d80e1
astyle formatting
2013-08-13 06:36:03 +02:00
Daniel Marjamäki
ff71c94f6e
Fixed #4949 (define symbol used in code => 'Analysis failed' message is written.)
2013-08-12 18:12:49 +02:00
Robert Reif
d6ce072dc9
Fixed #4950 (Tokenizer: order of int modifiers)
2013-08-12 06:23:01 +02:00
Robert Reif
cd3044c808
Fixed #4952 (SymbolDatabase: unknown types in log file)
2013-08-12 06:21:03 +02:00
Simon Martin
40887ca99c
Ticket #4703 : Trim macro parameters.
2013-08-11 09:41:03 +02:00
Robert Reif
56d8073d0f
Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions)
2013-08-10 12:37:31 +02:00
Robert Reif
5aa79198e6
Fixed #4948 (check printf %l and %ll arguments for long and long long)
2013-08-10 12:33:55 +02:00
Daniel Marjamäki
64733d9e63
astyle formatting
2013-08-10 12:32:59 +02:00
Daniel Marjamäki
3ac21ab1db
Merge pull request #158 from simartin/ticket_4764
...
Ticket #4764 : Handle template instantiations with only default parameters
2013-08-10 03:22:41 -07:00
Simon Martin
ad33d95ec1
Ticket #4764 : properly handle template instantiations with only default parameters.
2013-08-10 12:00:16 +02:00
Robert Reif
b940d0adc6
Fixed #4947 (Doesn't allow any ordering of int modifiers)
2013-08-09 23:13:04 +02:00
Daniel Marjamäki
3032dbabce
astyle formatting
2013-08-08 15:50:45 +02:00
PKEuS
298a33211f
Use static CmdLineParser instance where possible in testcmdlineparser.cpp, fixed wrong unit test.
2013-08-07 18:24:18 +02:00
PKEuS
36dba8373b
Reuse constant objects in testpathmatch.cpp, small simplification in testsuppressions.cpp and testthreadexecutor.cpp
2013-08-07 17:55:31 +02:00
PKEuS
a65e08b648
Simplified code in testerrorlogger by reusing constant object.
2013-08-07 17:02:35 +02:00
PKEuS
758d68519d
Use TinyXML to write XML files
2013-08-07 16:30:55 +02:00
PKEuS
a9a5dc0354
Updated to AStyle 2.03, require this version
2013-08-07 16:27:37 +02:00
PKEuS
dd82817752
Fixed #4943 and simplified CheckOther::checkCommaSeparatedReturn()
2013-08-06 11:27:09 -07:00
PKEuS
5e3ccda408
Added support for noreturn functions from library to CheckOther::checkUnreachableCode()
2013-08-06 02:11:59 -07:00
Simon Martin
c9884c30a1
Fix ticket #4922 (segmentation fault upon invalid code).
2013-08-05 20:28:22 +02:00
Daniel Marjamäki
2a78db4c06
Refactoring Token::findClosingBracket.
2013-07-31 10:30:20 +02:00
Daniel Marjamäki
6c05f78a8f
Reverted experimental changes for handling of lambda functions ( #4919 ).
2013-07-31 09:58:31 +02:00
Daniel Marjamäki
807204e580
Fixed #4237 (False positive: (error) Memory Leak: data (references and pointer aliases))
2013-07-30 11:30:14 +02:00
Daniel Marjamäki
1bebf1fd7e
AssignIf: added todo test case (pass variable by value to function)
2013-07-29 12:27:57 +02:00
Alexander Mai
39ba0d36c1
TestRunner: added test case for assignment simplification in do-while ( #4881 ).
2013-07-29 12:10:11 +02:00
Daniel Marjamäki
f59164302d
TestAssignIf: improved code coverage
2013-07-29 11:43:08 +02:00
Alexander Mai
3e9f6daa00
Added test cases for #4801 (Cppcheck fails to parse Posix (crash in CheckOther::checkPipeParameterSize()))
2013-07-29 10:57:41 +02:00
Daniel Marjamäki
9ff204f8bc
astyle formatting, use isEnabled("warning") instead of isEnabled("style")
2013-07-28 16:13:16 +02:00
Simon Martin
d01e3fa17a
Handle parameter positions format strings (POSIX extensions).
2013-07-28 15:00:28 +02:00
Daniel Marjamäki
239a0819e3
astyle formatting
2013-07-28 13:17:46 +02:00
Daniel Marjamäki
7fd12ee2b5
Merge pull request #153 from simartin/ticket_4930
...
Fixed #4930 ((error) Internal Error: Division by zero)
2013-07-28 04:17:03 -07:00
Daniel Marjamäki
2a1af1acda
CheckUninitVar: Assertion for '} while (' after 'do {..' in debug builds. Bail out in release builds to avoid segfaults.
2013-07-28 12:41:38 +02:00
Simon Martin
eb3bf571be
Avoid divisions by zero when simplifying numeric calculations.
2013-07-28 12:32:18 +02:00
Lucas Manuel Rodriguez
09f4d3732a
Fixed #4911 (segfault, assignment in do ... while, 1.61dev)
2013-07-28 11:58:14 +02:00
Daniel Marjamäki
36ef34a2cf
astyle formatting
2013-07-28 11:53:49 +02:00
Daniel Marjamäki
862eb351d5
Merge pull request #152 from simartin/ticket_4914
...
Fixed #4914 (memory freed twice, when in do {} while being shortcircuited via continue)
2013-07-28 01:43:45 -07:00
Alexander Mai
40fa474a5b
Fixed #4927 (Segfault in CheckOther::checkCommaSeparatedReturn() on invalid code)
2013-07-28 10:39:58 +02:00
Simon Martin
470a9a6c71
Take into account break and continue statements in CheckLeakAutoVar.
2013-07-28 10:26:46 +02:00
Daniel Marjamäki
44333f316a
Added terminate() handling to get quicker response when the user wants to terminate
2013-07-24 13:06:59 +02:00
Daniel Marjamäki
178467a578
astyle formatting
2013-07-24 11:20:28 +02:00
Carlo Marcelo Arenas Belon
aa0560fe3b
Fixed #4925 (False positive: checkother style)
...
When using a variable that is assigned a function pointer checks for
pointers are triggered which would complain if used in arithmetic
comparisions (eventhough it will be valid code if the function returns
an int)
2013-07-24 08:22:24 +02:00
Daniel Marjamäki
a1fafa7f06
Library: added <formatstr> and <strz> to argument checks
2013-07-22 20:21:45 +02:00
Robert Reif
20f81f92d9
CheckIO: Improved handling of h, hh, l, and ll.
2013-07-22 08:28:29 +02:00
Lucas Manuel Rodriguez
7e556c215e
Fixed #4861 (Improve check: object is destroyed immediately not detected when calling overloaded constructor)
2013-07-22 07:25:53 +02:00
Robert Reif
f11e54aa42
Fixed #4902 (printf and scanf format checks don't support microsoft %I, %I32 and %I64 extensions)
2013-07-21 08:35:01 +02:00
Daniel Marjamäki
37716fb8bb
Tokenizer: Set variable() pointer for array members
2013-07-20 17:46:39 +02:00
Lucas Manuel Rodriguez
59f448da8a
Fixed #4908 (False positive: void * calculation (struct member, cast))
2013-07-20 17:20:16 +02:00
Daniel Marjamäki
0c5e39a813
Library: Added configuration file std.cfg that clients should load.
2013-07-20 17:12:56 +02:00
Daniel Marjamäki
dfed6bbea0
Fixed #4445 (Token::Match called with varid 0)
2013-07-19 21:18:54 +02:00
Daniel Marjamäki
7eb1f36200
astyle formatting
2013-07-19 09:28:45 +02:00
Daniel Marjamäki
794aebe3cf
MathLib: Return inf.0 for NAN and INF calculations
2013-07-19 09:27:33 +02:00
Daniel Marjamäki
6fe1b92a47
Improved --check-library messages
2013-07-16 18:50:25 +02:00
Daniel Marjamäki
fa7f8ddc78
Library: Renamed Argument to ArgumentChecks to make it a bit more clear
2013-07-16 09:40:31 +02:00
Daniel Marjamäki
d25e7d4a21
Library: fixed problems
2013-07-16 08:21:38 +02:00
Daniel Marjamäki
24dfc052e2
astyle formatting
2013-07-15 21:57:58 +02:00
Daniel Marjamäki
7443883b9c
Library: Improved handling in CheckNullPointer::parseFunctionCall for Library data
2013-07-15 18:55:40 +02:00
Lucas Manuel Rodriguez
cfd697d6d4
Fixed #4042 (False Positive : Same expression on both sides of '&')
2013-07-11 07:13:47 +02:00
Daniel Marjamäki
8f332af849
Uninitialized variables: Avoid FP when using '?:'
2013-07-10 16:44:35 +02:00
Lucas Manuel Rodriguez
040c1e3a13
Fixed #4906 (False positive: void * calculation (cast))
2013-07-10 06:40:09 +02:00
Daniel Marjamäki
4106972fdc
Merge pull request #148 from JustRamires/master
...
Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892 )
2013-07-09 02:55:46 -07:00
Roman Zaytsev Borisovich
295869a866
Fixed segmentation fault in SymbolDatabase::SymbolDatabase(Ticket #4892 )
2013-07-09 13:10:03 +04:00
Daniel Marjamäki
7d47fd65a2
Renamed --environment to --library. Added --check-library. Renamed Environment to Library
2013-07-08 18:26:18 +02:00
Lucas Manuel Rodriguez
d177c8fd03
Fixed #4824 (False positive: (warning) Member variable 'Foo::m_state' is not initialized in the constructor.)
2013-07-08 06:38:33 +02:00
Daniel Marjamäki
2875ee1ecf
astyle formatting
2013-07-07 10:26:20 +02:00
Simon Martin
d0d3ce50c9
Added testcase for (now working) ticket #4742 .
2013-07-06 18:02:04 +02:00
Daniel Marjamäki
2ef0a40aec
Fixed #4893 (FP Uninitialized variable on sizeof of itself)
2013-07-06 08:52:47 +02:00
Lucas Manuel Rodriguez
00886b4d06
Fixed #4876 (Checking for sizeof(void))
2013-07-05 21:07:07 +02:00
Daniel Marjamäki
61e1dd5096
Environment: Refactoring and cleanup
2013-07-05 20:55:31 +02:00
Daniel Marjamäki
d96fb577cd
CLI: Added --environment flag
2013-07-02 07:18:19 +02:00
Daniel Marjamäki
1a35241aa2
testrunner: removed redundant ';'
2013-06-30 19:44:12 +02:00
Daniel Marjamäki
582e0ee7e7
testrunner: Added REGISTER_TEST. Thanks lucasmrod.
2013-06-30 19:42:26 +02:00
Simon Martin
e2deb59f8a
Improved handling of syntax errors in Tokenizer::simplifyAddBracesPair.
2013-06-29 14:05:49 +02:00
Daniel Marjamäki
6b2bab535b
CLI,LIB: Added --std setting for GTK
2013-06-29 12:55:24 +02:00
Daniel Marjamäki
ba23b65179
Fixed #4885 (FP Uninitialized variable when using comma)
2013-06-29 09:33:51 +02:00
Daniel Marjamäki
6997d38881
Uninitialized variables: fixed false positive in while loop
2013-06-27 18:28:00 +02:00
Daniel Marjamäki
6b01d2d5a8
Fixed #4747 (Can not find uninitialized variable (variable used in rhs in assignment))
2013-06-27 16:53:15 +02:00
Daniel Marjamäki
da9e3b4f01
TestTokenizer: Added test cases for simplifyKnownVariables
2013-06-26 21:47:03 +02:00
Daniel Marjamäki
c389e08353
Fixed #4728 (simplify known variables better (%var% & %num%, bitwise and))
2013-06-26 18:13:28 +02:00
Daniel Marjamäki
2265c61734
Fixed #4879 (false positive: uninitialized variable in inner for inside while (regression))
2013-06-26 17:02:57 +02:00
Zachary Blair
a381170886
Fixed #4874 (Minor spelling corrections)
2013-06-26 00:47:02 -07:00
Daniel Marjamäki
7dd07472c1
Fixed #4530 (Tokenizer: improved simplification of strlen in calculation)
2013-06-25 20:10:40 +02:00
Daniel Marjamäki
cfd960d794
Fixed #3765 (false negative: unitialized variable)
2013-06-25 18:40:41 +02:00
Simon Martin
75c8dcc664
Fixed #4873 (Preprocessor: Cppcheck is unable to scan a file with a single quote in a comment inside assembler section)
2013-06-25 06:45:11 +02:00
Lucas Manuel Rodriguez
d6be4559cd
Fixed #4840 (false negative: buffer access out of bounds)
2013-06-25 06:37:51 +02:00
Alexander Mai
5a9975bbdd
Fixed #4869 (segmentation fault in Tokenizer::simplifyStructDecl (invalid code))
2013-06-22 14:05:49 +02:00
Daniel Marjamäki
bfc40ffe9f
Fixed #4868 (Segmentation fault in Preprocessor::handleIncludes())
2013-06-21 20:10:46 +02:00
Daniel Marjamäki
e4270bab78
Fixed #4863 (macros not propagated)
2013-06-19 21:29:39 +02:00
Andreas Bießmann
9b3a8774c5
Test case for unreachableCode ( #4756 )
2013-06-18 06:40:43 +02:00
Daniel Marjamäki
2fb8133e90
Fixed #4862 (False positive: Comma is used in return statement (template))
2013-06-18 00:13:45 +02:00
Alexander Mai
0be1892b92
Fixed #4806 (Crash in Type::initBaseInfo() in clang testcode)
2013-06-16 21:46:01 +02:00
Daniel Marjamäki
8ac2b4d516
Travis: Fixed failing test
2013-06-16 16:53:09 +02:00
Daniel Marjamäki
d3d7808a06
Fixed #4834 (FreeType: incorrect array boundary analysis)
2013-06-16 15:41:13 +02:00
Daniel Marjamäki
a9bd6cf3df
Fixed #4857 (False Positive: function argument hides enumerator of same type)
2013-06-16 08:13:41 +02:00
Abhishek Bharadwaj
d85c8e6782
Fixed #4104 (New check: comma separated statements in return statement from a function)
2013-06-15 17:49:10 +02:00
Daniel Marjamki
03f28e9c65
Fixed #4668 (Tokenizer: improve handling of 'if (x) MACRO() { ..')
2013-06-15 14:40:05 +02:00
Daniel Marjamäki
15c92384f4
Fixed #4851 (Preprocessor: problem when using #ifndef symbol in the code)
2013-06-15 12:08:18 +02:00
Daniel Marjamäki
722bfe7197
Fixed #4553 (Wrong calculation of known values)
2013-06-14 18:51:52 +02:00
Daniel Marjamäki
eac4ebf185
astyle formatting
2013-06-14 07:22:46 +02:00
Daniel Marjamäki
ae36472a1b
Fixed #4778 (FP: Uninitialized variable: av)
2013-06-14 07:21:53 +02:00
Robert Reif
870d29944b
Fixed #4852 (false positive: Member variable 'A::sz' is not initialized in the constructor)
2013-06-14 06:32:26 +02:00
Daniel Marjamäki
cd5e32446f
Fixed #4641 (False positive: Address of local auto-variable assigned to a function parameter)
2013-06-13 16:19:19 +02:00
PKEuS
876e9c0039
Fixed issue on C++11 right angle brackets ( #4832 )
2013-06-12 13:43:29 -07:00
Daniel Marjamäki
c4763b9010
Fixed #4463 (false positive: (style) Variable 'CHDERR_NOT_OPEN' hides enumerator with same name)
2013-06-12 06:45:26 +02:00
PKEuS
4efccc2c5d
Fixed #4420 : Prefix increment is only suspicious, if its return value is not used.
2013-06-10 13:02:02 -07:00
Zachary Blair
28c0045f36
Fixed #4173 : New check: arithmetical usage of inf/nan result
2013-06-09 23:13:08 -07:00
Daniel Marjamäki
4e816e2edf
astyle formatting
2013-06-09 16:04:59 +02:00
Daniel Marjamäki
616a693f1f
Merge pull request #139 from JustRamires/master
...
Ticket #4694
2013-06-08 07:46:08 -07:00
Daniel Marjamki
4e09b06bc1
Fixed #4827 (allow checking multiple configurations when using -D by also using --max-configs or --force)
2013-06-08 16:46:54 +02:00
Roman Zaytsev Borisovich
4610b135dc
Fixed #4694
2013-06-07 10:37:33 +04:00
Daniel Marjamäki
10849e220b
Fixed #4809 (Review CheckNullPointer::parseFunctionCall)
2013-06-07 06:37:53 +02:00
Daniel Marjamäki
9eac4489ac
Fixed #4838 (False positive for ... seems to be invalid)
2013-06-06 12:44:19 +02:00
Frank Zingsheim
f5a3492e3a
astyle formatting
2013-06-05 22:19:37 +02:00
Frank Zingsheim
aa25d1e0af
Fixed #4837 (False positive: Assert statement calls a function which may have desired side effects (local variable))
2013-06-05 22:10:43 +02:00
Daniel Marjamäki
dec520c507
Tokenizer::simplifyEnum: Fixed false positives
2013-06-04 21:18:20 +02:00
Daniel Marjamäki
8b5792a0f8
Tokenizer::simplifyEnum: Fixed internalErrors when building with compiled patterns.
2013-06-04 18:57:46 +02:00
Daniel Marjamäki
fa1fd31667
Tokenizer::simplifyEnum: Improved handling of shadow variables
2013-06-04 06:51:01 +02:00
Daniel Marjamäki
8954cc0984
Fixed #4280 (Tokenizer::simplifyEnum: don't simplify shadow variables)
2013-06-03 19:18:51 +02:00
Daniel Marjamäki
2d955bb9a6
Uninitvar: Added TODO test case for false negatives. Related with #4652
2013-06-02 18:26:03 +02:00
Daniel Marjamäki
a7da65a40b
Fixed #4618 (Unmatched suppression: don't show this information message unless --enable=information or --check-cfg is used)
2013-05-31 15:20:58 +02:00
Daniel Marjamäki
065853a59a
Fixed #4652 (False positive: variable value tracking into loop body)
2013-05-29 16:16:12 +02:00
Daniel Marjamäki
a861817a01
Fixed #4751 (CheckBufferOverrun: better handling when struct member instance doesn't have same varid as struct member declaration)
2013-05-28 16:52:23 +02:00
Daniel Marjamäki
ae7363fe54
Fixed #4599 (False positive with fopen/fclose test)
2013-05-23 06:34:22 +02:00
Daniel Marjamäki
1936eb8676
astyle formatting
2013-05-21 16:59:58 +02:00
Robert Reif
2c8360c607
Fixed #4789 (uninitMemberVar not found when constructor contains default parameters)
2013-05-18 18:33:24 +02:00
Frank Zingsheim
0943fecf03
Fixed #4799 (Segmentation fault in K&R simplification inside lambda expression)
2013-05-14 20:56:31 +02:00
PKEuS
b58e1241dc
Distinguish between different swprintf overloads. ( #4790 )
...
Fixed MSVC warning recently introduced
2013-05-14 02:06:16 -07:00
PKEuS
1903585ea3
Fixed bug in handling rvalue references: Scope has to be set everywhere. ( #4732 )
2013-05-14 01:43:32 -07:00
Frank Zingsheim
511f8a4c1f
More general fix to #4187 (False positive: Variable inside a lambda is reported as uninitialized)
2013-05-12 10:19:43 +02:00
Frank Zingsheim
d387e8b770
Fixed #4711 : (false positive: Consecutive return...)
2013-05-11 17:50:59 +02:00
Daniel Marjamäki
b6bcdf2936
Fixed #4520 (segmentation fault of cppcheck (preprocessing))
2013-05-09 18:50:24 +02:00
PKEuS
fb480ebb0a
Now really fixed #4604 .
2013-05-09 15:39:33 +02:00
PKEuS
881b47e79d
Revert "Improved handling of 0 initializations ( #4604 )"
...
This reverts commit 1201e417ec
.
2013-05-09 15:32:02 +02:00
PKEuS
0a104c40b7
Fixed "Improved handling of 0 initializations ( #4604 )"
...
This fixes commit 1201e417ec
.
2013-05-09 15:25:36 +02:00
PKEuS
982b9491d4
Improved handling of 0 initializations ( #4604 )
2013-05-09 06:23:25 -07:00
PKEuS
c42b89fb88
Revert "Improved handling of 0 initializations ( #4604 )"
...
This reverts commit 1201e417ec
.
2013-05-09 15:19:23 +02:00
PKEuS
1201e417ec
Improved handling of 0 initializations ( #4604 )
2013-05-09 06:17:10 -07:00
Daniel Marjamäki
cbe0a0825c
Fixed #4725 (Tokenizer: Replace block declaration (^{}) with asm())
2013-05-09 14:47:18 +02:00
XhmikosR
f32aa89da3
run tabspace
2013-05-08 18:36:47 +02:00
Lena Herscheid
e23038c4de
Fixed #4775 (Check for assert() with side effects)
2013-05-07 21:35:16 +02:00
Frank Zingsheim
bca751b9f4
Fixed #4773 (Regression: wrong detection of unitialized variable)
2013-05-06 18:45:00 +02:00
Daniel Marjamäki
4659745106
Fixed #4786 (segfault with one LibreOffice file)
2013-05-06 16:56:34 +02:00
Daniel Marjamäki
3f5a858800
dmake: update Makefile
2013-05-05 09:22:04 +02:00
Daniel Marjamäki
ea60c5b14b
CheckBufferOverrun: Code cleanup
2013-05-05 08:14:19 +02:00
Daniel Marjamäki
079d22fbee
Fixed #4734 (False 'Possible null pointer dereference')
2013-05-03 16:18:44 +02:00
Zachary Blair
de8ee5b042
Fixed #4554 (false negative: buffer access out of bounds)
2013-05-02 21:50:48 -07:00
Daniel Marjamäki
bfb1bc50e3
Fixed #4760 (false negative: (error) usage of uninitialized variable (struct member))
2013-05-02 20:34:15 +02:00
Alexander Mai
957e0790c6
Tokenizer::setVarId: assert that strange code with same type names and variable names work. Ticket: #3990
2013-05-01 18:50:35 +02:00
Daniel Marjamäki
44cb070e13
Fixed #4737 (False positive: Uninitialized variable 'do_something(&((char*)&var)[0],1);')
2013-05-01 13:52:28 +02:00
Frank Zingsheim
42068a3d60
Fixed #4767 (segmentation fault in expand template)
2013-05-01 13:28:01 +02:00
Daniel Marjamäki
287782a679
Fixed #4390 (False alarm 'Object pointed by an auto_ptr is destroyed using operator delete. You should not use auto_ptr for pointers obtained with operator new[].')
2013-05-01 11:11:57 +02:00
Daniel Marjamäki
b2798e929d
Improved fix for #4455 , no false negatives if variable is used before first memset
2013-04-30 16:56:44 +02:00
Daniel Marjamäki
cf75e2bb28
astyle formatting
2013-04-30 06:44:50 +02:00
Daniel Marjamäki
47ef8cf455
Fixed #4455 (redundantCopy when precleaning with memset)
2013-04-30 06:43:16 +02:00
Baris Demiray
548dd42aaf
Fixed #933 (Leaks with struct members not detected)
2013-04-26 16:11:57 +02:00
Zachary Blair
35668380cf
Fixed #4510 (False positive: "Possible null pointer dereference if the default parameter value is used" after init)
2013-04-25 00:25:56 -07:00
Daniel Marjamäki
c3d1274db3
Reverted 'simplify NOT' since there are problems related to signedness of numeric values.
2013-04-24 06:32:34 +02:00
Daniel Marjamäki
e1dd14626c
Fixed #4735 (FP: Mismatching assignment and comparison)
2013-04-23 06:47:15 +02:00
Daniel Marjamäki
a5b044a6e2
Fixed #4754 (False positive: Map literals trigger redundant code warning)
2013-04-20 07:51:44 +02:00
Daniel Marjamäki
9f8ce6f77f
Fixed #4729 (Tokenizer::setVarId: Varid not tracked properly after function declaration with 'shadow' parameter name)
2013-04-19 18:36:16 +02:00
Daniel Marjamäki
8d9ad2ae0d
TestTokenizer: Renamed test functions so they match the function names used in the Tokenizer (simplifyRoundCurlyParentheses)
2013-04-19 06:42:09 +02:00
Daniel Marjamäki
e3be600479
TestTokenizer: Renamed test functions so they match the function names used in the Tokenizer
2013-04-18 16:13:58 +02:00
Daniel Marjamäki
80cb2a9b20
Updated TestUninitVar test cases. They should not have unsimplified code.
2013-04-17 21:06:19 +02:00
Daniel Marjamäki
4e65800adf
TestRunner: Updated warning message when there is unsimplified code
2013-04-16 16:54:19 +02:00
Daniel Marjamäki
fdac502c39
Simplified TestNullPointer test cases
2013-04-15 19:00:15 +02:00
Daniel Marjamki
9007345221
Simplified TestOther test cases
2013-04-13 20:17:53 +02:00
Daniel Marjamäki
37a87d2f9d
Simplified TestClass test cases
2013-04-13 19:11:07 +02:00
Daniel Marjamäki
dd6a806ada
TestBoost: Warn if test case is not simplified properly
2013-04-13 18:42:56 +02:00
Daniel Marjamäki
8c6637c79c
TestBool: Warn if test case is not simplified properly
2013-04-13 18:41:06 +02:00
Daniel Marjamäki
25582dbde7
Simplify TestAutoVariables test cases
2013-04-13 18:38:15 +02:00
Daniel Marjamäki
b42ec0fe8b
Simplify TestAssignIf test cases (else if)
2013-04-13 18:23:53 +02:00
Daniel Marjamäki
393c75af70
Simplified remaining TestBufferOverrun test cases
2013-04-13 15:49:15 +02:00
Daniel Marjamäki
cbe2cdafcf
Simplify TestBufferOverrun test cases (casts, pointer addition, calculation)
2013-04-13 13:58:21 +02:00
Daniel Marjamäki
fe911f92e1
Simplify TestBufferOverrun test cases (known variable value)
2013-04-13 13:13:13 +02:00
PKEuS
6f9886a1b9
Removed more duplicate unit tests
2013-04-13 02:07:18 -07:00
Daniel Marjamäki
78d3aef40e
Simplified TestBufferOverrun test cases (sizeof, known variable value)
2013-04-13 11:01:19 +02:00
PKEuS
693c6e84cb
Removed more duplicate unit tests
2013-04-13 01:49:17 -07:00
PKEuS
8e4f99884b
Removed more duplicate unit tests
2013-04-13 00:49:00 -07:00
Daniel Marjamäki
3b880f9e2e
Simplified TestBufferOverrun test cases (sizeof, known variables, casts, etc)
2013-04-13 08:19:14 +02:00
Daniel Marjamäki
7871f16e9d
Simplified TestBufferOverrun::readlink test cases (sizeof)
2013-04-13 07:31:15 +02:00
Daniel Marjamäki
6afdd1b7c0
Simplified TestBufferOverrun::readlinkat test cases (sizeof, known variables)
2013-04-13 07:22:01 +02:00
PKEuS
cdce755471
Removed duplicate unit tests in testbufferoverrun.cpp
2013-04-12 12:17:08 -07:00
Daniel Marjamäki
9ad39ca4c0
Fixed #4544 (Crash with this line : class CD : public CC< class CB< CA > >)
2013-04-12 16:38:12 +02:00
Daniel Marjamäki
e8fbd39efd
Templates: better handling of 'X<class Y>' template instantiations. Ticket: #4544
2013-04-11 18:58:39 +02:00
Ettl Martin
e03a3946d0
avoid crash in checkother:wrongPipeParameterSize when a pointer with unknown size is provided.
2013-04-11 14:22:22 +02:00
Ettl Martin
33cfc1a52e
fixed #4726 : simplify bitwise Not (~ %num%)
2013-04-11 09:16:40 +02:00
Daniel Marjamäki
a49fc57e00
Tokenizer: don't simplify 'a!=(b!=0)' to 'a!=b'. Ticket: #4697
2013-04-11 07:19:32 +02:00
Frank Zingsheim
54e7c8f6a2
Implemented support for move constructors:
...
Adapt code to Function::eMoveConstructor
introduced in commit eb2962792f
2013-04-10 21:57:22 +02:00
Daniel Marjamäki
7fdaba43ed
Uninitialized variables: Fixed fp when initializing struct with function in loop body
2013-04-10 20:46:44 +02:00
Daniel Marjamäki
96a5429cee
Uninitialized variables: Assume that function initializes struct if it is unknown if it does
2013-04-10 20:04:32 +02:00
PKEuS
994c429b7d
Moved checks related to sizeof usage from checkother into new file
2013-04-10 09:49:38 -07:00
PKEuS
42fcb04d0c
Moved checks related to boolean type (not condition checking!) from checkother into new file
2013-04-10 09:25:50 -07:00
PKEuS
4e6d105cbd
Added support for complex patterns to CheckOther::checkIncorrectStringCompare()
2013-04-09 09:16:35 -07:00
XhmikosR
8ac9b8e7a9
remove duplicate ";" and fours dots
2013-04-09 17:49:09 +02:00
XhmikosR
700512a53f
use spaces in strings
2013-04-09 17:49:09 +02:00
PKEuS
c487ea843d
Better fix for #4706 : Use Token::nextArgument() properly. Removed redundant ' in message
2013-04-09 08:30:53 -07:00
Daniel Marjamäki
4c8b17c040
Fixed #4717 (False positive: Uninitialized variable inside ({..}))
2013-04-09 17:02:11 +02:00
Daniel Marjamäki
894a2435ae
Fixed #4718 (False positive: unititialized variable (value flow))
2013-04-08 19:34:39 +02:00
Alexander Mai
14fc140592
Fixed memory leaks in teststl
2013-04-07 18:43:18 +02:00
Daniel Marjamki
cd770fb106
Fixed #4310 (False positive 'boolean result in bitwise' message in template class (was #3818 ))
2013-04-07 16:48:42 +02:00
Daniel Marjamäki
f43d732f33
Fixed #4691 (False positive: Mismatching bitmasks in switch())
2013-04-07 04:25:10 +02:00
Daniel Marjamäki
38680e3440
Fixed #4677 (Message for 'possible null pointer dereference, otherwise it is redundant to check..' is warning but says error)
2013-04-07 03:41:02 +02:00
zblair
ecfe4eb5be
Fixed #3372 (New check: dereference iterator and then checking it)
2013-04-04 21:14:59 -07:00
PKEuS
eb2962792f
Implemented support for move constructors:
...
- Changed behaviour of Token::function - is now also set for declarations
- Resolved TODO in testclass.cpp
- removed redundant code in Scope::findFunction - it is safe to call nextArgument() on functions without arguments
- Use Token::function in checkother.cpp
2013-04-04 10:53:55 -07:00
PKEuS
188096665c
Implemented support for rvalue references (C++11):
...
- Split up && when it is part of an rvalue reference declaration
- Added support into symbol database
- Current implementation sets Variable::isReference() to true also for rvalue references - they can probably be treated like normal references in many checks.
Changed behaviour of symbol database: Insert argument Variable of functions that are not implemented into SymbolDatabase::_variableList
2013-04-04 09:47:44 -07:00
Ettl Martin
ba8cca8fa9
#4706 fix crash when a struct member is used as first argument. Replaced Token::nexArgument with %any% in Token::Match call. Added unittests in testing Token::nexArgument.
2013-04-04 15:12:18 +02:00
PKEuS
51685f24c5
Improved expression parsing in CheckNullPointer::isPointerDeRef() - fixed #4692
2013-04-03 01:27:08 -07:00
Ettl Martin
3e8eddc69e
cleanup testcases: moved testcases from #3888 into allocfunc13 which contains similar testcases already.
2013-04-03 10:12:36 +02:00
Ettl Martin
08ac48199e
#3103 added testcases.
2013-04-03 09:33:33 +02:00
Ettl Martin
9f25b618dc
#3888 added a testcase
2013-04-03 08:57:26 +02:00
PKEuS
7596282cba
Improved test coverage: Ensure that passing multiple <id> to --enable works. Check settings.isEnabled("warning").
2013-04-01 04:15:05 -07:00
PKEuS
fbe997ca80
Use global Settings instance in TestCmdlineParser, since most tests just need it to pass something to CmdlineParser class.
...
This change implies that we do not rely on any default state of the Settings class - as it should be, since CmdlineParser is tested, not Settings.
2013-04-01 04:12:56 -07:00
Frank Zingsheim
395a474ec2
Fixed #4695 : Infinite recursion inside isRecordTypeWithoutSideEffects()
2013-04-01 12:41:14 +02:00
PKEuS
12f5ccfb4e
Refactorized postfix operator check:
...
- Support class members
- Support references (removed wrong bailout)
- Removed wrong unit tests and wrong messages for std::cout << k-- << std::endl;
2013-03-31 04:17:23 -07:00
XhmikosR
a9955cce8e
run astyle
2013-03-30 19:06:13 +01:00
Frank Zingsheim
5d55d40361
Fixed #4656 (New check: Detect pure virtual function calls)
2013-03-30 15:09:22 +01:00
Robert Reif
a3f9b5c07d
Fixed #4686 (Prefer prefix ++/-- operators for non-primitive types with template iterator)
2013-03-30 13:49:56 +01:00
Alexander Mai
b9c27699b3
Fixed #4684 (cppcheck crash in template function call.)
2013-03-29 19:29:23 +01:00
Daniel Marjamäki
3301728c50
astyle formatting
2013-03-29 17:55:09 +01:00
Alexander Mai
7902cd0123
Fixed #4447 (false positive: (style) Variable 'X' is assigned a value that is never used (goto))
2013-03-28 06:44:37 +01:00
Robert Reif
3f57b5a6ca
Fixed #4682 (using 'struct' disables checking)
2013-03-28 06:36:49 +01:00
Daniel Marjamäki
2d70af2c82
Reverted fix. It might be possible to make a better fix
2013-03-25 19:55:35 +01:00
Daniel Marjamäki
2b02013fa7
Fixed #4668 (False positive: uninitialized Variable after unknown macro)
2013-03-25 19:52:33 +01:00
PKEuS
37ac86dec9
Fixed #4666 : Implemented proper variable scope checking for switch statements
2013-03-23 03:28:33 -07:00
Daniel Marjamäki
c9469993e2
Uninitialized variables: Fixed false positives when using sizeof inside loop
2013-03-22 08:10:46 +01:00
Daniel Marjamäki
a79354d51c
Uninitialized variables: Fixed false positive when taking address of uninitialized array that is a struct member
2013-03-20 16:59:45 +01:00
Ettl Martin
1b9c1c03fa
unittests: removed not needed '\n' at the end of testcases.
2013-03-20 15:36:16 +01:00
Daniel Marjamäki
dd155b57e4
Fixed #4487 (False positive: variable is not assigned a value (pointer alias))
2013-03-20 06:38:53 +01:00
Ettl Martin
54d398c7dd
unittests: removed not needed '\n' at the end of testcases.
2013-03-19 09:18:58 +01:00
Ettl Martin
7c0905cd4e
#4665 added todo unittest
2013-03-19 08:47:05 +01:00
Ettl Martin
ff826d7c62
#4664 : new check: (POSIX) write outside buffer size.
2013-03-19 08:22:48 +01:00
Daniel Marjamäki
1b18bfc93c
Fixed #3585 (errors not recognized when class has extra specification)
2013-03-18 19:09:04 +01:00
PKEuS
d9f7042992
Fixed false negative #4663
2013-03-18 08:17:53 -07:00
Daniel Marjamäki
a4a2f78a7a
Fixed #4659 (portability: address value / integer false positive)
2013-03-17 17:25:57 +01:00
PKEuS
1e66e0b931
Fixed false negative #4657
2013-03-15 05:00:51 -07:00
kchrist
740e790bf1
Fixed #4649 (false positive: Used file that is not opened; variables in struct)
2013-03-15 06:42:46 +01:00
Daniel Marjamäki
c0a34649c4
fixed 'duplicate expression' false positives for float-float. Ticket: #4639
2013-03-14 19:11:29 +01:00
Daniel Marjamäki
369e80b021
Fixed #4465 (syntax error on valid C++ source file)
2013-03-14 18:52:22 +01:00
PKEuS
096fa2f771
Fixed #4380
2013-03-14 10:18:48 -07:00
PKEuS
ed477ceb74
Fixed false negative mentioned in #4354 .
2013-03-14 09:27:42 -07:00
PKEuS
641ac5c02a
Fixed #4352 : Ensure that class provides an iterator interface.
2013-03-14 09:00:22 -07:00
Thomas Jarosch
61d9424631
astyle formatting
2013-03-14 11:10:12 +01:00
Ettl Martin
cd1392749c
Removed not needed '\n' at the end of testcases in testbufferoverrun.cpp. No functional changes.
2013-03-14 09:45:47 +01:00
Ettl Martin
c8798b2207
#3838 added more testcases.
2013-03-14 09:36:38 +01:00
Ettl Martin
19c430530f
#3838 added another testcase to avoid a FP.
2013-03-14 09:21:31 +01:00
Robert Reif
4b9b87e310
Fixed #4646 (false positive: (style, inconclusive) Technically the member function 'C<T>::operator+=' can be const.)
2013-03-14 06:34:12 +01:00
Alexander Mai
f43ea5c491
Fixed #4594 (Analyzing errors about system headers not being found)
2013-03-13 19:50:50 +01:00
Daniel Marjamäki
1f04e2c228
Fixed #4439 (False positive: Uninitialized variable (casting address))
2013-03-13 17:32:47 +01:00
Ettl Martin
34b3fe6af0
#1659 added TODO-testcases.
2013-03-13 10:55:20 +01:00
Alexander Mai
59d636742e
Fixed #4594 (Analyzing errors about system headers not being found)
2013-03-13 06:48:33 +01:00
Frank Zingsheim
e91e7148de
Test case for #4644 (Tokenizer: Wrong varId after typename):
...
Added equivalent test with "class"
2013-03-12 19:50:24 +01:00
PKEuS
796c3e101f
Implemented better fix for #4644
2013-03-12 08:05:03 -07:00
PKEuS
2333aa2cc7
Don't use native separators for suppression matching
2013-03-12 07:53:18 -07:00
PKEuS
14feaa8d39
Refactorizations:
...
- Fixed lots of cppcheck messages about functions that can be const or static
- Fixed possible nullpointer dereference message in symboldatabase.cpp
- Replaced tokAt(+-1) by next()/previous()
2013-03-12 07:42:00 -07:00
Alexander Mai
9d88cc63e8
Fixed #4642 (False positive: Returning an address value in a function with integer return type is not portable. (not returning address))
2013-03-12 06:49:13 +01:00
Ettl Martin
3d1cdd0eec
#4645 implemented correct range according manpage of usleep().
2013-03-11 17:38:03 +01:00
Ettl Martin
dde51f73ff
removed wrong line of testcode (introduced by my last commit).
2013-03-11 17:20:41 +01:00
Ettl Martin
bb115573f7
#4645 implemented new check: (POSIX) argument of function usleep() too big.
2013-03-11 17:04:30 +01:00
PKEuS
b3a9ac5c3b
Fixed #4644 : Don't assign varid to template parameter when 'typename' is used
2013-03-10 06:11:25 -07:00
Daniel Marjamäki
1f40af2ae2
Fixed #4637 (false positive: (error) Uninitialized member variable (missing function inlining))
2013-03-09 17:55:49 +01:00
Robert Reif
25c36b56fa
CheckClass: made warnings about uninitialized members in default constructors inconclusive. Ticket: #4639
2013-03-09 09:20:48 +01:00
PKEuS
99a73fe1d3
Don't assign a varid to a variadic function
2013-03-05 08:32:52 -08:00
PKEuS
2a312efd6e
Adapted testsymboldatabase.cpp to recent changes
2013-03-05 06:46:34 -08:00
PKEuS
66a3555897
Implement initial support for Types in Symboldatabase:
...
- For each class/struct/union, a Type instance is added to SymbolDatabase::typeList.
- A scope is no longer created for declared but not defined types
Fixed name detection for classes when they are declared like this: "class ::Foo::Sub {..."
2013-03-05 04:33:38 -08:00
PKEuS
6eed6b3cf3
Partially reverted 657e5d7ea2
because of trigraph issue.
2013-03-05 01:21:59 -08:00
PKEuS
657e5d7ea2
Fixed some small formatting issues in test suite
2013-03-04 11:14:56 -08:00
PKEuS
0f03995995
Added support for different containers, while-loops and if to CheckStl::stlOutOfBounds()
2013-03-04 10:59:46 -08:00
Daniel Marjamäki
78a3a58a5a
Fixed #4628 (False positive: Variable is assigned a value that is never used)
2013-03-04 19:13:49 +01:00
Ettl Martin
687c3a4654
Merge branch 'master' of github.com:danmar/cppcheck
2013-03-04 14:25:51 +01:00
Ettl Martin
c9b519bcd1
improved check: checkCastIntToCharAndBack. The check now handles (cin.get() != EOF) patterns.
2013-03-04 14:25:35 +01:00
PKEuS
34b1d75a10
Fixed handling of std::vector::insert() in CheckStl::pushback()
2013-03-04 02:57:09 -08:00
PKEuS
c24527dbde
Improved handling of dereferences in CheckClass::noMemset(), fixing false negatives and false positives related to multidimensional arrays and arrays of pointers.
2013-03-04 02:47:29 -08:00
PKEuS
8a18f9ec3b
Rewrote CheckOther::checkVariableScope()
2013-03-03 10:35:33 -08:00
PKEuS
5c1a05dcbe
Refactorizations in CheckOther:
...
- Make CheckOther::checkCastIntToCharAndBack() work for multiple variables at once
- Improved messages of CheckOther::checkSuspiciousSemicolon() and CheckOther::checkPipeParameterSize()
2013-03-03 09:54:44 -08:00
PKEuS
d78c06dc3f
Replaced _settings->isEnabled("style") by _settings->isEnabled("warning") wherever warnings are issued
2013-03-03 02:41:59 -08:00
Daniel Marjamäki
d7a52eaecd
Fixed #4608 (false positive: (style) struct or union member is never used.)
2013-03-01 16:13:04 +01:00
PKEuS
096aae4439
New check: Warn about using malloc() for classes containing virtual methods, std::-objects or constructors
2013-03-01 06:07:20 -08:00
PKEuS
75799446aa
Added unit test for #4619
2013-03-01 04:06:51 -08:00
PKEuS
f899e6ca30
Changed behaviour of %op% pattern accordingly to changes to Token::isOp(). Added %cop% as replacement for old %op%
2013-03-01 02:43:59 -08:00
PKEuS
670c4de8a9
Changed behaviour of Token::is*Op() functions:
...
- Rename Token::isOp() to Token::isConstOp() (indicating that the operator does _not_ modify the input variables)
- Create new Token::isOp(), returning true also for ++, -- and assignment operators
- Make Token::isExtendedOp() returning also true for all assignment and ++/-- operators
2013-02-28 12:50:29 -08:00
Daniel Marjamäki
ecafe7a129
Fixed #4624 (Wrong error for instances of std::unique_lock (variable is never used))
2013-02-28 17:02:58 +01:00
zblair
ed03e2c845
Fixed #4539 (False positive: Possible null pointer dereference)
2013-02-27 23:45:21 -08:00
Daniel Marjamäki
94da3bd57f
Fixed #4617 (False positive (style): noexcept for constructors)
2013-02-28 06:38:57 +01:00
Ettl Martin
8d682233d0
Implemented new check (Ticket #160 ): Storing getc() retun value in char variable and comparing to EOF.
2013-02-27 21:02:12 +01:00
Robert Reif
509061afff
Fixed #4620 (False positive: Uninitialized variable in constructor (1.58))
2013-02-27 06:59:04 +01:00
Daniel Marjamäki
df55ce14a0
Fixed #4503 (False positive: Incomplete statement (std::vector<int> v{1};))
2013-02-24 10:00:03 +01:00
Daniel Marjamäki
2edf95a1b9
Fixed #4367 (false positive: Class '...' is unsafe, '...' can leak by wrong usage)
2013-02-24 08:14:25 +01:00
Daniel Marjamki
5c7e1cf9ff
Fixed #4387 (false positive 'constStatement' in 1.57)
2013-02-23 16:26:25 +01:00
Daniel Marjamki
ee435bf885
Fixed #4600 (False positive Uninitialized struct member when using it as 'out parameter')
2013-02-23 15:57:58 +01:00
Daniel Marjamäki
bce99a9e2f
Fixed #4394 (FP: Variable 'a' is not assigned a value)
2013-02-20 17:43:16 +01:00
Daniel Marjamäki
71b66209b7
Fixed #4300 (segmentation fault of cppcheck (invalid code))
2013-02-20 06:58:27 +01:00
Alexander Mai
34c3697750
Added unit test for #4525
2013-02-19 21:56:13 +01:00
PKEuS
33cf561d85
Refactorized check for assigning function parameters:
...
- Fixed false negative: Check is also valid for all non-references, not only for pointers.
- Fixed false negative: Usage before assignment doesn't require bailout
- Fixed false positive #4598 caused by inadequate usage of CheckUninitVar::isVariableUsage
- Made several member functions static
2013-02-18 08:52:49 -08:00
Daniel Marjamäki
1c584208b4
Fixed #4329 (False duplicateBranch when branches use conditionally defined macros)
2013-02-18 17:18:33 +01:00
Robert Reif
e6915e7a78
Fixed #4536 (non-static member initializer causes false positive)
2013-02-18 06:33:53 +01:00
Ettl Martin
73e2a8fdb5
Merge branch 'master' of github.com:danmar/cppcheck
2013-02-17 17:34:44 +01:00
Ettl Martin
f451dd1137
#3521 implemented new check: wrong buffersize to pipe() function provided.
2013-02-17 17:33:32 +01:00
PKEuS
711d0d7a33
Warn about memset(this, 0, sizeof(*this)); ( #1285 )
2013-02-16 11:02:43 -08:00
PKEuS
167e11b645
Switch to TinyXml2
2013-02-16 10:01:34 -08:00
Daniel Marjamki
2a660fa3b4
Tokenizer: Fixed removeCast bug. Don't simplify (A)&b to A&b if A might be a type. Related with ticket: #4439
2013-02-16 16:58:36 +01:00
Daniel Marjamki
635b7d5a0e
Fixed #4423 (Variable is assigned a value that is never used.)
2013-02-16 16:07:05 +01:00
PKEuS
0d316af4f2
Fixed false positive stlSize for code like "foo + 1 > bar.size()" ( #4584 )
2013-02-16 02:50:25 -08:00
PKEuS
d3087602a1
Fixed false positive "function can be const" if a non-const expression is inside []-brackets ( #4406 )
2013-02-16 02:20:18 -08:00
PKEuS
afe45ff39f
Refactorized CheckClass::privateFunctions:
...
- Resolved todo about nested classes, fixed false negative, fixed wrong unit test
- Removed slow and unnecessary Token::findmatch
- Removed false positive when function implementation in friend class is not seen (#4384 )
2013-02-16 01:51:08 -08:00
PKEuS
27f7917349
Changed severity and message formatting of argumentSize message.
2013-02-16 00:52:27 -08:00
PKEuS
44887df04f
Fixed false positive redundantAssignment when calling function in assignment ( #4513 )
2013-02-15 09:40:34 -08:00
Daniel Marjamäki
382d7a10e8
Uninitialized variables: improved checking of c++ code
2013-02-15 18:13:47 +01:00
PKEuS
ccd95d1749
Make redundantAssignment message inconclusive when printed on global variables to avoid false warning on semaphores/mutexes ( #4467 )
2013-02-15 09:01:10 -08:00
PKEuS
e2655da1ec
Properly handle return/break/continue in CheckIO::checkFileUsage() ( #4466 )
2013-02-15 08:30:43 -08:00
PKEuS
017b4a8a7f
Treat references like global variables in CheckOther::checkRedundantAssignment() as they might refer to such. ( #4425 )
2013-02-15 08:09:31 -08:00
Robert Reif
c5ee083c82
Fixed #4388 (false positive 'noConstructor' in 1.57)
2013-02-15 06:44:07 +01:00
Daniel Marjamki
452dc23742
Fixed #4480 (False positive : Inefficient usage of string::find)
2013-02-14 19:14:20 +01:00
Daniel Marjamäki
08ada4cc63
Fixed #2652 (container .size() check too strict)
2013-02-14 16:59:58 +01:00
Robert Reif
a1da067b88
Fixed #4585 (false positive, Variable 'b' is assigned a value that is never used when using+loop)
2013-02-14 06:31:41 +01:00
Robert Reif
5de26bfeb9
Fixed #4574 (noConstructor false positives introduced in cppcheck 1.58)
2013-02-13 06:00:04 +01:00
Frank Zingsheim
213d31b360
Fixed #4547 (Improve check: Duplicate conditions in 'if' and related 'else { if'.)
...
Local fix in CheckOther::checkDuplicateIf()
2013-02-12 21:43:12 +01:00
Frank Zingsheim
75f69c11b7
Test for #4573 (False positive: variableScope within if/else if)
2013-02-12 21:16:57 +01:00
Daniel Marjamäki
1e550f9fdf
Reverted fix for #4547 : It causes fp. See #4573
2013-02-12 16:13:08 +01:00
Daniel Marjamäki
28e38a9e56
Fixed #4519 (false positive: (error) Uninitialized variable: eax (inline assembly usage))
2013-02-12 15:59:23 +01:00
Ettl Martin
c192e4d669
spellfixes
2013-02-12 15:21:27 +01:00
Ettl Martin
dade326a99
#4566 implemented new check: redundantGetAndSetUserId on posix systems
2013-02-11 20:26:27 +01:00
Daniel Marjamäki
75cf951c56
add return value to test case
2013-02-11 18:39:03 +01:00
Daniel Marjamäki
442db6cdf9
Fixed #4569 (False Positive: Uninitialised variable)
2013-02-11 18:31:14 +01:00
Daniel Marjamäki
94f1d34dcb
Fixed #4560 (false positive: (error) Uninitialized variable: s)
2013-02-11 17:05:59 +01:00
Daniel Marjamäki
48e194dc56
Fixed #4572 (Analysis failed: sizeof final)
2013-02-10 23:54:15 +01:00
Mathias De Maré
dfd557888d
Fixed #4565 (false positive: dangerous usage (not null-terminated))
2013-02-10 13:36:40 +01:00
Andrew C. Martin
bd0d9b9639
fix misspellings & gcc v3.4.6 warnings
...
1. fix typos / misspellings
- Fix misspelling within comments, variable/function names, stdout messages
- changes the name of an error code: ```stlBoundries``` changed to ```stlBoundaries```. Alias old name (```stlBoundries```) to the new one.
2. fix gcc v3.4.6 32bit & 64bit warnings
- fixes gcc v3.4.6 warnings, except for those in tinyxml and "-Wmissing-declarations" makefile warnings
- in Preprocessor::handleIncludes(), replace a ```vector <bool>``` with ```stack<bool>``` (see ```vector<bool>``` warning below).
- this is the only ```vector<bool>``` in the codebase
- ```vector <bool>``` is actually a case of template specialization, and is not recommended, according to the following links:
http://stackoverflow.com/q/6461487
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2160.html
http://stackoverflow.com/q/670308
- in the codebase before and after this change, testrunner SEGVs in a number of places on gcc v3.4.6, including ```Check::~Check()```, among others
- fc42fc95
fixes this particular runtime issue for DJGPP & __sun
2013-02-09 23:43:09 -07:00
Robert Reif
fe5de60f32
Fixed #4567 (false negative: The class 'B' does not have a constructor.)
2013-02-08 06:55:45 +01:00
Daniel Marjamäki
463121be71
Fixed #4561 (cppcheck 1.58 crashes on empty signals block in headerfile)
2013-02-07 17:03:08 +01:00
Frank Zingsheim
5144307642
Raise syntax error for if-condition without parentheses according to #2518 #4171
2013-02-05 21:13:57 +01:00
Daniel Marjamäki
4ac5648656
Uninitialized struct: Fixed false positive in for loop
2013-02-05 17:01:46 +01:00
Frank Zingsheim
b531195e08
Fixed #4547 (Improve check: Duplicate conditions in 'if' and related 'else { if'.)
...
Change tokenizer: "else if" -->> "else { if"
2013-02-04 21:12:12 +01:00
Daniel Marjamäki
a39a2479da
Travis: Fixed false positive in lib/checkbufferoverrun. Ticket: #4486
2013-02-04 19:02:42 +01:00
Daniel Marjamäki
1de54ba88e
Fixed #4486 (False positive: Return of address from function with integer return type (p+1-q))
2013-02-04 18:14:52 +01:00
Frank Zingsheim
89560564ed
Refactoring: Add braces to an if-block, for-block, etc. in tokenizer.
...
Fixed #4521 (Tokenizer: Wrong braces for triple if else)
2013-02-02 16:01:34 +01:00
Daniel Marjamki
abd536b84c
Null pointer: Changed 'possible null pointer dereference - otherwise condition is redundant' to warning
2013-02-02 15:46:29 +01:00
Daniel Marjamki
75e20a996d
assign function pointer: Fixed false positive when pointer is used also. Ticket: #2930
2013-02-02 15:26:14 +01:00
Daniel Marjamki
6bb8dd605a
assign function parameters: only show warning when --enable=warning or --enable=style is used. Ticket: #2930
2013-02-02 15:08:43 +01:00
Daniel Marjamäki
cbbb582fc9
Fixed #2930 (new check: redundant assignment of pointer function parameter)
2013-02-01 19:16:17 +01:00
Robert Reif
1a58ae4994
Symbol database: handle when forward declaration doesn't match declaration. Ticket: #4531
2013-02-01 06:31:02 +01:00
Daniel Marjamäki
e2faed355b
Fixed #4485 (False positive: Same expression of '-' when checking if float is inf)
2013-01-31 17:29:31 +01:00
Daniel Marjamäki
bd7e3cbac5
Fixed #4540 (memory leak not detected ('.' or '->' is used before Function))
2013-01-31 17:00:50 +01:00
Daniel Marjamäki
fc42aa3a30
Fixed #4523 (false positive: (error) Possible null pointer dereference)
2013-01-30 16:52:12 +01:00
Daniel Marjamäki
bc6d31c7c7
unsigned division: don't warn about 'unsigned char' because it is promoted to int.
2013-01-30 16:50:12 +01:00
Daniel Marjamäki
509dd9a989
Fixed #4523 (false positive: (error) Possible null pointer dereference)
2013-01-29 17:12:14 +01:00
Daniel Marjamäki
3679a809dd
Uninitialized variables: fixed false positive
2013-01-28 18:08:20 +01:00
Robert Reif
859793731d
SymbolDatabase: Refactor findFunction handling. Ticket: #4494
2013-01-28 06:47:48 +01:00
Daniel Marjamäki
4391f0880f
Tokenizer: Add special tokenize method for the Preprocessor with only basic simplifications
2013-01-27 17:58:54 +01:00
Daniel Marjamäki
42dd956dff
Preprocessor: Better fix for hangs. And added proper unit test.
2013-01-27 02:53:29 +01:00
Robert Reif
a0d8fd26fe
SymbolDatabase: improved handling of const in function parameters
2013-01-27 02:46:00 +01:00
Frank Zingsheim
6dc9987ad0
Fixed #4517 (Testmemleak should not use Tokenizer on pseudo code)
2013-01-27 02:41:43 +01:00
Daniel Marjamki
f69b1f426e
Preprocessor: Improved handling of expressions in simplifyVarMap. Ticket: #4516
2013-01-26 16:21:33 +01:00
Daniel Marjamki
641e7cba28
Fixed #4516 (Preprocessor: wrong #if evaluation)
2013-01-26 12:37:46 +01:00
Daniel Marjamki
8738223e82
Fixed #4512 (Improve check: Uninitialized variable not detected)
2013-01-26 08:16:53 +01:00
Daniel Marjamäki
ae43b12bf1
Fixed #4511 (False positive: uninitialized struct member)
2013-01-25 18:20:57 +01:00
Robert Reif
3b08b410a2
Symbol database: Improved function lookup (a.b.f()). Ticket: #4494
2013-01-25 06:49:04 +01:00
Daniel Marjamäki
c235737b6c
Uninitialized variables: improved checking of loops
2013-01-24 19:41:15 +01:00
Erik Lax
c2608108dd
Fixed #3928 (Tokenizer: Wrong simplification of inner if-else 'if (a) while (b) if (c) x; else y;')
2013-01-24 16:53:20 +01:00
Robert Reif
cecd726b11
Symbol database: Improved function lookup for foo.f(). Ticket #4494
2013-01-23 16:53:55 +01:00
Daniel Marjamäki
f86e83d813
Memory leaks: Improved handling of allocation functions that contains ::. Ticket: #4494
2013-01-22 21:33:39 +01:00
Erik Lax
444f80c4bb
Fixed #4505
2013-01-22 13:49:54 +01:00
Robert Reif
ddb604d1a5
Symbol database: function lookup when :: is used. Ticket #4494
2013-01-22 06:55:25 +01:00
Frank Zingsheim
096cb1bd88
Fixed #3686 : false positive: Possible null pointer dereference (inconclusive)
2013-01-21 19:38:59 +01:00
Daniel Marjamäki
bfafd51ca1
Fixed #4470 (New check: redundant bitand 'x&=1; x&=2;' can be simplified to 'x=0;')
2013-01-21 19:59:34 +01:00
Daniel Marjamki
c478a3214f
Uninitialized variables: Added TODO test case (while)
2013-01-20 18:40:24 +01:00
Daniel Marjamki
76534ccd1b
Uninitialized struct member: Fixed false negatives for return statements
2013-01-20 17:54:32 +01:00
Daniel Marjamki
d33341a21a
Fixed #4502 (Preprocessor: Treat SystemInclude and UserInclude the same)
2013-01-20 14:42:04 +01:00
Daniel Marjamki
e63f2c3b5b
Uninitialized struct member: Avoid false positive when struct member is passed by address
2013-01-20 13:12:40 +01:00
Daniel Marjamäki
67c9720299
Tokenizer: fixed simplification of static constants
2013-01-19 21:14:15 +01:00
Daniel Marjamki
bff6ed7af0
Fixed #3500 (false negative: (error) Returning pointer to local array variable)
2013-01-19 13:39:23 +01:00
Daniel Marjamki
f1c195e652
Fixed #3506 (false negative: not initialized variables ( struct timeval))
2013-01-19 12:48:56 +01:00
Daniel Marjamki
3cf0e88fbe
Uninitialized struct members: Improved checking when struct member is used in expression
2013-01-19 10:09:58 +01:00
Zachary Blair
8647e4c0d0
Fixed a false positive in #4109 (if (c == 1) c == 0; Isn't picked up)
2013-01-18 16:34:15 -08:00
Daniel Marjamäki
7c615f0f12
Fixed #4497 (False positive: uninitialized struct (writing/reading member))
2013-01-18 21:26:28 +01:00
Zachary Blair
a1cbed3df8
Fixed #4109 (if (c == 1) c == 0; Isn't picked up)
2013-01-17 23:03:04 -08:00
Daniel Marjamäki
77e9f65e6b
Uninitialized struct members: Fixed unit test
2013-01-17 23:55:13 +01:00
Daniel Marjamäki
2c6b383822
Uninitialized member variables: Improvements
2013-01-17 21:04:22 +01:00
Daniel Marjamäki
93fb6b0c6a
Fixed #4493 (FP: uninit struct member (struct is assigned))
2013-01-17 17:01:04 +01:00
Daniel Marjamäki
5773e69ab1
Uninitialized variables: Add experimental checking of struct members
2013-01-16 20:28:29 +01:00
Daniel Marjamäki
4cd8c7c608
Merge pull request #128 from acmyo/master
...
Fix compiler warnings and comment/string typos
2013-01-16 08:00:59 -08:00
Daniel Marjamäki
0fb2d309a6
Fixed #4490 (False positive: unused function (function pointer is taken in global scope))
2013-01-16 16:52:57 +01:00
Andrew C. Martin
4a73c93750
Fix compiler warnings and comment/string typos
...
- fix g++ warning:
> lib/checkother.cpp:3779: warning: comparison between signed and unsigned integer expressions
- fix suncc warning (see [everything2](http://everything2.com/title/C%252B%252B%253A+static+extern+%2522C%2522 )):
> "lib/checkmemoryleak.cpp", line 578: Warning (Anachronism): Formal argument __compar of type extern "C" int(*)(const void*,const void*) in call to bsearch(const void*, const void*, unsigned long, unsigned long, extern "C" int(*)(const void*,const void*)) is being passed int(*)(const void*,const void*).
- prefer empty() / isEmpty() over "size() > 0" (cases not caught by stlSize)
- fix word misspellings (mostly comments, a few output lines)
- Parenthesis => Parentheses (both variations were used in the codebase)
- fix typo and wording ("never alwayw") in gui/test/data/benchmark/simple.cpp's CheckOther::unsignedPositive():
```
- "An unsigned variable will never alwayw be positive so it is either pointless or "
+ "An unsigned variable can't be negative so it is either pointless or "
```
2013-01-16 07:37:07 -07:00
Daniel Marjamäki
27eedcd0a3
Merge pull request #127 from rofl0r/master
...
sanitize the descriptive text displayed for "varFuncNullUB"
2013-01-15 21:34:03 -08:00
rofl0r
623e30d677
fix unit test for varFuncNullUB
2013-01-15 20:45:53 +01:00
Daniel Marjamäki
2fa35a6f8d
Fixed #4429 (unused functions: handle function declarations better)
2013-01-15 17:00:28 +01:00
Daniel Marjamäki
d46789ee4a
varFuncNullUB: fixed false positive when non-variadic argument is NULL ( #4482 )
2013-01-14 06:44:52 +01:00
Erik Lax
723d95597b
Fixed #4481 (Simplify %str% [ %num% ])
2013-01-13 20:52:38 +01:00
Daniel Marjamäki
f0ce26a2aa
Preprocessor: Let the Tokenizer handle NULL
2013-01-13 15:01:31 +01:00
Daniel Marjamäki
2e56928834
Fixed #4482 (add test for UB due to usage of NULL in variadic functions)
2013-01-13 12:02:10 +01:00
Daniel Marjamäki
97b928b2bc
Fixed #4476 (Tokenizer: wrong simplification of static anonymous-type struct array declaration)
2013-01-10 18:24:01 +01:00
Zachary Blair
309edbbdc5
Fixed #4389 (False positive: Possible null pointer dereference if the default parameter value is used)
2013-01-09 23:22:54 -08:00
Edoardo Prezioso
6236e1dc38
Token::Match: removed harmless special code for initial '!!foo' patterns.
2013-01-09 20:13:33 +01:00
Thomas Jarosch
7dd07d8e77
Properly implement %op% for Token::multiCompare
...
Use tok->isOp() instead of doing it "manually".
This fixes false positives for the C++ template case since
the brackets in "template < something >" are not comparison operators.
Profiling showed using tok->isOp() is actually faster than before (-O2).
2013-01-09 17:05:53 +01:00
Thomas Jarosch
29c66dd9bc
Add another TODO test case for Token::Match
2013-01-08 00:19:12 +01:00
Thomas Jarosch
818362f496
Add TODO test case for a bug in Token::Match multicompare
...
The result of the %op% operator is wrong in the multicompare
case for C++ templates. Detected by comparing the output
of the compiled matches with the on-the-fly match parser.
2013-01-07 23:47:20 +01:00
Frank Zingsheim
498d03458f
Fixed #4385 : lock_guard RAII throws unreadVariable
2013-01-07 20:28:43 +01:00
Daniel Marjamäki
eebfea2b23
Fixed #4381 (Inline type declaration on statics causes warning)
2013-01-07 19:20:15 +01:00
Zachary Blair
f3c3b7c910
Fixed #4405 (False positive: Memory in freed twice (throw))
2013-01-05 19:02:19 -08:00
PKEuS
f5ebbff0a3
Fixed #4460 : Ensure that memset/memcpy is called on a pointer to a class instance.
2013-01-05 12:27:55 -08:00
Edoardo Prezioso
4c73c29cdd
Revert partially the previous commit:
...
The two formulas are true iff 2n = 2 <=> n = 1.
2013-01-05 17:31:08 +01:00
Edoardo Prezioso
1c0c0471df
Simplify some generalized math formulas:
...
Now the 'sin^2+cos^2=1' and the 'sinh^2-cosh^2=-1' code can handle, for example: sin^4+cos^4=1, sinh^10-cosh^10=-1.
Also, the arguments can be also multitokens, so that it's possible to simplify, for example: 'sin^2(k())+cos^2(k())=1'.
2013-01-04 13:06:09 +01:00
Edoardo Prezioso
5485e6866f
Fixed wrong tokenization of some math formulas:
...
The two formulas: sin^2+cos^2 = 1 and sinh^2-cosh^2 = -1 are true iff the two arguments are the same.
2013-01-04 11:28:01 +01:00
Robert Reif
d37906041b
Fixed #4458 (False positive: noCopyConstructor in template class)
2013-01-04 10:35:24 +01:00
Daniel Marjamäki
a3ee72a51d
Fixed #4409 (Cppcheck 1.58 dev hangs when checking mhz.c of lmbench3 (attached code))
2013-01-03 19:14:44 +01:00
Daniel Marjamäki
70059c06de
Fixed #4456 (std::string::compare(char const*) crash)
2013-01-03 08:44:32 +01:00
Daniel Marjamäki
6e58ed3040
Fixed #4454 (False positive: class member (POD) not initialized (when initialized to 0 in initializer list))
2013-01-02 13:59:57 +01:00
Reijo Tomperi
5d5f7085bf
Updating year 2012 -> 2013 to .cpp and .h files and man page.
2013-01-01 18:29:08 +02:00
Robert Reif
d2e8ab9c86
Fixed #4302 (Member variable not initialized in public delegate constructor)
2013-01-01 09:53:40 +01:00
Daniel Marjamäki
4378357d7e
Fixed #4372 (Tokenizer misidentifying which function a variable belongs to)
2012-12-29 21:07:41 +01:00
Daniel Marjamäki
4d085dd3fd
Fixed #4316 (False positive: (constStatement) Redundant code)
2012-12-29 17:13:06 +01:00
Daniel Marjamäki
e7aa1ec396
Fixed #4411 (Variable is assigned a value that is never used.)
2012-12-29 12:45:37 +01:00
Daniel Marjamäki
8491df31ca
Merge pull request #126 from SimonKagstrom/for-upstream
...
Misc fixes for the --include= option
2012-12-28 23:58:14 -08:00
Daniel Marjamäki
9af51a75e6
Tokenizer::setVarId: Proper handling of 'void f(struct foobar). Ticket: #4444 '
2012-12-29 08:54:39 +01:00
Daniel Marjamäki
38d1b064e8
Symbol database: Add support for unnamed array arguments to functions ( #4444 )
2012-12-29 08:32:43 +01:00
Robert Reif
07d118dee5
Fixed #4449 (segfault in CheckClass::initializeVarList())
2012-12-29 08:30:14 +01:00
Thomas Jarosch
1f87c6d669
Fix crash on empty brackets
...
Relevant parts from the backtrace:
2012-12-28 20:16:51 +01:00
Daniel Marjamäki
1769240e15
Fixed #4022 (false positive: (style) Variable 'sort_entry' is assigned a value that is never used)
2012-12-28 18:18:36 +01:00
Simon Kagstrom
95b51d02c9
path: Add getPathFromFilename (returns the path part of a filename)
...
E.g.,
/tmp/a.h -> /tmp/
a.h ->
etc.
2012-12-28 12:44:26 +01:00
Daniel Marjamäki
de2c133f6a
Fixed #4426 (False positive: Unitialized variable warning when comparing addresses)
2012-12-28 12:32:15 +01:00
Thomas Jarosch
4708be09f5
Fixed #4444 (segmentation fault)
2012-12-28 11:15:18 +01:00
Robert Reif
bd2f59bdf0
Fixed #4442 (crash of cppcheck while scanning gcc-testsuite (invalid code))
2012-12-28 08:36:20 +01:00
Daniel Marjamäki
b914466285
Uninitialized variables: fixed false positives by bailing out when variable is conditionally initialized and then there is a conditional return.
2012-12-27 18:45:00 +01:00
Daniel Marjamäki
bf9b900c30
Tokenizer::setVarId: Fixed problem with initializer lists ( #4436 )
2012-12-27 18:15:00 +01:00
Robert Reif
a43ae677d7
Fixed #4419 (False positive: Class does not have a constructor)
2012-12-27 17:21:30 +01:00
Robert Reif
3e6d601982
Fixed #4436 (FP: Member variable is not initialized in the constructor. (with two parameters))
2012-12-27 17:15:38 +01:00
Simon Kagstrom
ef28bde3e4
Fixed #4408 (Force inclusion of files (a la -include /.../ in GCC))
2012-12-27 16:52:31 +01:00
Daniel Marjamäki
2e0a9c4b33
Fixed #4434 (false positive: (style) Mismatching assignment and comparison, comparison 'pen!=-1' is always true.)
2012-12-27 15:40:00 +01:00
PKEuS
735069e3a7
Fixed unit tests
2012-12-26 12:50:59 +01:00
Daniel Marjamäki
b3301a9ef9
Fixed #4433 (Wrong array size for string with \0)
2012-12-26 12:10:09 +01:00
Robert Reif
ce380301fd
Fixed #4432 (Crash on parsing PHP interpreter)
2012-12-26 08:29:10 +01:00
Daniel Marjamäki
f127d56719
Null pointer: Fixed FP when there are 'return p?p->x:0;'
2012-12-25 14:23:50 +01:00
Daniel Marjamäki
f16c30248a
Uninitialized variables: fixed FP when there are function calls where type* is converted to unknown_type
2012-12-25 14:05:29 +01:00
Daniel Marjamäki
f381058293
Uninitialized variables: fixed FP when there are suspicious function calls where type** is converted to type*
2012-12-25 13:58:15 +01:00
Daniel Marjamäki
bcc5a82b1d
Uninitialized variables: Fixed FP when using typeof on uninitialized data in return statement
2012-12-25 13:31:54 +01:00
Daniel Marjamäki
db123c2c9b
Fixed #4431 (FP: Erroneous 'Ineffective call of function empty()' in ?: test)
2012-12-25 12:50:38 +01:00
Daniel Marjamäki
299c1bb208
Uninitialized variables: handle unsimplified labels better
2012-12-25 10:37:21 +01:00
Daniel Marjamäki
db2a129557
Tokenizer: Improved handling of '\0' in strings
2012-12-25 08:56:12 +01:00
Daniel Marjamäki
83da4125e3
Uninitialized variables: Better value flow analysis. Fixed false positives.
2012-12-24 19:11:13 +01:00
Daniel Marjamäki
b39afb2cf9
Revert "Fixed #4419 (False positive: Class does not have a constructor)"
...
This reverts commit 9a79961b6c
.
There is a segmentation fault when checking lib/preprocessor.cpp
2012-12-24 07:46:55 +01:00
Robert Reif
9a79961b6c
Fixed #4419 (False positive: Class does not have a constructor)
2012-12-24 06:46:30 +01:00
Daniel Marjamäki
56b7670468
Tokenizer::setVarId: Fixed problem in initializer list when parameter and class member has same name
2012-12-23 19:55:09 +01:00
Daniel Marjamäki
0b4da3d5cd
Uninitialized variables: Fixed false positives when variable x is given a nonzero value when variable y is uninitialized.
2012-12-23 16:27:04 +01:00
Robert Reif
dae232015e
Fixed #4430 (FP: Member variable is not initialized in the constructor.)
2012-12-23 08:04:44 +01:00
Daniel Marjamäki
47e1a571f7
Tokenizer: Fixed goto problems
2012-12-22 19:28:53 +01:00
Daniel Marjamäki
7f6a10599b
Fixed #4262 (Small Request/Suggestion for checks on array size of args (bounty offer))
2012-12-22 09:23:34 +01:00
Daniel Marjamäki
365a260ddc
Fixed #4398 (False negative: out of bounds (for loop))
2012-12-22 08:00:05 +01:00
Robert Reif
80848c6e0e
Fixed #4383 (Improve check: uninitialized member variable not detected when initialization is not proper)
2012-12-21 19:36:45 +01:00
Daniel Marjamäki
2050cd71db
Uninitialized variables: Better testing of function handling
2012-12-21 19:32:56 +01:00
Daniel Marjamäki
dc6aa92f3b
Uninitialized variables: warn about structs in C code
2012-12-21 18:50:38 +01:00
Daniel Marjamäki
cf84c211ed
Uninitialized variables: Improved handling of function calls
2012-12-21 17:04:15 +01:00
Daniel Marjamäki
415ee977d8
Uninitialized variables : fixed false positives when passing address of pointer to function.
2012-12-21 16:57:49 +01:00
Daniel Marjamäki
7e8019e474
Fixed #4403 (False positive 'Conversion of string literal <string> to bool always evaluates to true.' with BOOST_ASSERT)
2012-12-20 20:48:48 +01:00
Daniel Marjamäki
ccdea4dc2b
Uninitialized variables: Improved checking of functions
2012-12-20 19:45:30 +01:00
Robert Reif
bb2a15c140
Symbol database: Better handling of 'using namespace N;'. Ticket: #4412
2012-12-20 06:53:04 +01:00
Daniel Marjamäki
3913fd8398
Fixed #4320 (False positives 'unassignedVariable' and 'uninitvar')
2012-12-18 19:02:30 +01:00
Daniel Marjamäki
1e2fb4f1a4
Unused var: Limit bailout for foreach loops. Only bailout if name contains 'foreach' or 'for_each'. Only bailout variables that are used more than once in the body. Ticket: #4155
2012-12-17 18:19:05 +01:00
Daniel Marjamäki
72ea94bf75
Fixed #4155 (false positive: Variable is assigned a value that is never used (inside BOOST_FOREACH loop))
2012-12-17 17:07:56 +01:00
Daniel Marjamäki
a84d21f271
CheckMemoryLeaksInFunction: Fixed problems with catch and function calls. Ticket: #4405
2012-12-16 18:06:40 +01:00
Daniel Marjamäki
8e1e894dff
AST: Added some tests to ensure operator precedence is handled properly
2012-12-16 11:56:23 +01:00
Daniel Marjamäki
bca7927913
AST: generate tree from bottom and upwards
2012-12-16 11:48:19 +01:00
Daniel Marjamäki
aad3a041ad
AST: Handle function calls
2012-12-16 10:06:55 +01:00
Daniel Marjamäki
1ad9c933ec
AST: Improved handling of unary operators
2012-12-16 08:41:04 +01:00
Robert Reif
6732f05b95
Fixed #4404 (Forward declared class cause false style warning about missing constructor)
2012-12-16 07:18:03 +01:00
Daniel Marjamäki
fa8e5cd7d8
AST: Simple AST. Not used in the clients. Only part of the testing for now.
2012-12-15 20:21:09 +01:00
PKEuS
c4821db796
Updated VS9 solution with qmake ( #4397 ).
2012-12-13 20:38:10 +01:00
Daniel Marjamäki
88c1e42bdb
VS2010: Added cli/cppcheckexecutor.cpp to testrunner project
2012-12-13 18:43:45 +01:00
Daniel Marjamäki
df03e3a8d2
Fixed #4395 (Wrong simplification of known variables in nested assignment)
2012-12-10 06:08:33 +01:00
Robert Reif
5a7ede2563
Fixed #4391 (False positive: ctor not detected after variable declaration)
2012-12-10 06:01:29 +01:00
Frank Zingsheim
327db15284
Fix #4045 : memory leak not reported after usage of " + p[]"
2012-12-09 08:59:21 +01:00
PKEuS
410c0f98d9
Refactorized CheckObsoleteFunctions:
...
- Speedup checkobsoletefunctions by using symboldatabase and by not calling SymbolDatabase::findFunctionByToken() for each function call.
-> Benchmark (SQlite amalgamation):
CheckObsoleteFunctions::runSimplifiedChecks(): 9s -> 0,016s (562%, 4% on entire runtime)
- Fixed false negative when passing function result as parameter
2012-12-08 02:46:30 -08:00
PKEuS
578e582987
Fixed regression #4368 .
2012-12-08 00:26:10 -08:00