Daniel Marjamäki
5b0551054a
varid: better templates handling
2012-05-22 18:58:13 +02:00
PKEuS
0157f937bf
Fixed #3760 : Added explicit to C++ keyword list in setVarId
...
Made some constant arrays static
2012-05-16 01:59:52 -07:00
Daniel Marjamäki
4ae8e4f382
Tokenizer::setVarId: Minor fix of sizeof handling
2012-05-15 18:40:24 +02:00
Daniel Marjamäki
a0e5fad6a9
Fixed #3776 (Tokenizer::setVarId: No varid set when unknown macro is used before variable declaration)
2012-05-15 07:17:31 +02:00
Daniel Marjamäki
62f9875f90
Fixed #3799 (Bug: Function gets varId)
2012-05-13 07:55:35 +02:00
Daniel Marjamäki
8236cd4d50
Fixed #3785 (false positive: (style) Variable 'dinv' is assigned a value that is never used)
2012-05-08 12:04:54 -07:00
Daniel Marjamäki
99a29eafc9
Fixed #3691 (Tokenizer::simplifyKnownVariables: continue in switch)
2012-05-07 12:11:23 -07:00
PKEuS
6ef92c4fd7
Use recently implemented new constructor of ErrorLogger::ErrorMessage in checkmemoryleak.cpp and symboldatabase.cpp
...
Fixed test failure introduced in f105bf75a6
2012-05-06 04:01:56 -07:00
PKEuS
1a5fbd61d2
Splitted class TokenList from Tokenizer
2012-05-05 09:33:26 -07:00
Daniel Marjamäki
11614021e8
Fixed #3768 (Tokenizer::setVarId: no varid for 'std::string' parameter after a 'std::string' parameter called 'string')
2012-05-05 09:59:43 +02:00
Daniel Marjamäki
119b24e363
Fixed #3756 (False positive: uninitvar in malloc)
2012-05-03 19:10:51 +02:00
Edoardo Prezioso
5d6a257c86
Fixed #3770 (Segmentation fault in K&R function parameters simplification)
2012-04-29 12:58:52 +02:00
Daniel Marjamäki
df6f88b4fe
Fixed #3755 (Tokenizer::setVarId: improve varid inside class for struct/class variables)
2012-04-26 18:38:47 +02:00
PKEuS
30e8e389a7
Fixed #2980
2012-04-26 10:58:35 +02:00
PKEuS
1e708e10d0
Fixed #2875
2012-04-26 10:35:40 +02:00
PKEuS
a4c4c66a4c
Added test case for #3466
2012-04-25 21:14:25 +02:00
Daniel Marjamäki
f84a4344ae
Fixed #3754 (Tokenizer::simplifyKnownVariables: wrong for loop simplification)
2012-04-25 19:23:17 +02:00
Daniel Marjamäki
6ae135124e
Tokenizer::setVarId: better handling of initializer lists
2012-04-23 18:26:27 +02:00
Ettl Martin
d0b7a3514b
added unittest to fix sample code #3721
2012-04-22 17:28:27 +02:00
Daniel Marjamäki
706631f527
Fixed #3748 (False positive out of bounds with postincrement)
2012-04-22 12:22:49 +02:00
Daniel Marjamäki
d5f6cfcfa8
Tokenizer: Use new setVarId function. Removed the old one.
2012-04-22 11:36:31 +02:00
Daniel Marjamäki
807f49ce83
testrunner: fixed test case when TestTokenizer::setVarIdOld is used
2012-04-22 09:56:02 +02:00
Daniel Marjamäki
71050bc586
Tokenizer::setVarIdNew: fixed TestTokenizer::varid_in_class2 test case
2012-04-22 08:51:19 +02:00
Edoardo Prezioso
8dfde7def8
Added missing testcase from previous commit.
2012-04-22 02:41:51 +02:00
Edoardo Prezioso
be5a61b794
Fixed ticket #3721 (false positive: syntax error on valid C code ( K&R function style )).
2012-04-22 01:56:40 +02:00
Daniel Marjamäki
f3cbb3f05d
TestTokenizer: Removed varid test cases that have impossible source code
2012-04-21 19:07:35 +02:00
Daniel Marjamäki
bd60dd46d0
Tokenizer::setVarIdNew: handle special case when there is an unknown macro. Ticket #2638
2012-04-21 17:57:20 +02:00
PKEuS
88aa08e71b
Refactorizations in test suite:
...
- Removed redundant tokenization helper functions in testtokenize.cpp and testsimplifytokens.cpp
- Pass arguments as const char[] or const std::string& to avoid instanciation or at least copying of strings
- Removed redundant calls to Tokenizer::validate() - This function is already called implicitly by tokenize() and simplifyTokenList()
2012-04-17 09:51:08 +02:00
PKEuS
bac8ed7127
Refactorized stringification of tokens:
...
- Function that stringifies one token: Token::stringify()
- Functions that stringify a list of tokens: Token::stringifyList()
-- Single and powerful "base" function, used by several "light" functions
Refactorized
- testtokenize.cpp and testsimplifytokens.cpp: Use improved stringification functions instead of several local implementations
- Avoided redundand creation of std::string when using TestTokenizer::tokenizeAndStringify and in cmdlineparser.cpp
2012-04-16 19:51:07 +02:00
PKEuS
1c3c94dc67
New simplification: Remove 'extern "C"' from C++ code.
...
Refactorization in cppcheck.cpp: Catch exception as const reference instead of non-const reference.
2012-04-16 16:25:04 +02:00
Daniel Marjamäki
c58d02f146
Tokenizer::setVarIdNew: in C code, allow that variable declaration starts with delete and throw
2012-04-15 18:23:12 +02:00
Daniel Marjamäki
46bfe27831
Tokenizer::setVarIdNew: Better handling of function calls
2012-04-15 17:44:51 +02:00
Daniel Marjamäki
31f8a71f84
Tokenizer::setVarIdNew: Better handling for catch-exception-by-reference
2012-04-15 17:39:22 +02:00
Daniel Marjamäki
3c1dfc658c
Tokenizer::setVarIdNew: use the new setVarId with a few more test cases. Improved setVarId: references in executable scopes must be initialized.
2012-04-15 14:32:47 +02:00
Daniel Marjamäki
27c37896a0
Tokenizer::setVarIdNew : use new setVarId function in TestTokenizer::varidReturn2.
2012-04-15 14:19:17 +02:00
Daniel Marjamäki
95dafd30dd
Tokenizer::setVarIdNew : enable more testcases. better handling of unions and struct members.
2012-04-15 13:42:13 +02:00
Daniel Marjamäki
4c79a1af20
testrunner: use new Tokenizer::setVarId function in some unit tests
2012-04-15 12:49:53 +02:00
Edoardo Prezioso
51789d8e20
Fixed ticket #3712 (false positive: syntax error on valid C code ( K&R function style ))
2012-04-13 00:39:40 +02:00
Daniel Marjamäki
bbdeebafda
Fixed #3700 (false positive: (style) Variable 'H' is not assigned a value)
2012-04-09 12:55:26 +02:00
Daniel Marjamäki
823fc9ac04
Fixed #3650 (Variable declaration: Doesn't handle template usage well)
2012-04-05 08:53:10 +02:00
Edoardo Prezioso
ecc5dea113
Fixed ticket #3703 (false positive: syntax error on valid C-code ( K&R - style )).
2012-04-03 20:12:34 +02:00
Edoardo Prezioso
5d91ef76fe
Fixed ticket #3701 (false positive: syntax error on valid C code ( K&R function style ).
2012-04-03 19:49:58 +02:00
Edoardo Prezioso
af02908d42
Fixed ticket #3580 (syntax error in multi variable declaration header).
2012-03-31 18:45:29 +02:00
Pierre Schweitzer
e46c7eb320
Add the RTL memory functions for the simplifications on Windows code.
2012-03-27 21:24:46 +02:00
PKEuS
002389f836
Fixed #3677
...
Added forgotten testcase for #3672
2012-03-21 18:40:32 +01:00
Daniel Marjamäki
a2351ba44f
Fixed #3648 (Internal error: Token::Match called with varid 0)
2012-03-20 19:05:24 +01:00
Daniel Marjamäki
d6c8de104c
Revert "Fixed #3648 (Internal error: Token::Match called with varid 0)"
...
This reverts commit 1fa1ddccba
.
2012-03-20 19:00:16 +01:00
Daniel Marjamäki
1fa1ddccba
Fixed #3648 (Internal error: Token::Match called with varid 0)
2012-03-20 18:58:27 +01:00
PKEuS
cb2a754983
Implemented support for C++11 right angle brackets (>>)
...
Implemented support for linkage between < and > (Information: It is possible that under certain circumstances comparision operators are linked, since its sometimes difficult to separate between them.)
2012-03-19 18:45:47 +01:00
PKEuS
7055526f4a
Fixed #3672 : bitwise and operator in if/while does no longer confuse setVarId code
...
Improvements to CheckUnusedVar:
- Improved handling of arrays of struct/class instances
- Differ between addressof and bitwise-and operator
- Made some members private to improve encapsulation
- Replaced some simple patterns by direct function calls
- Removed an unnecessary condition
2012-03-19 17:41:16 +01:00
Daniel Marjamäki
555e8c6efc
Fixed #36221 (Input streams: Wrong token list simplification)
2012-03-15 19:09:36 +01:00
Daniel Marjamäki
a9d56f2738
Tokenizer: simplify known variable value inside conditional block
2012-03-12 17:32:30 +01:00
August Sodora
e0bee0e037
Fixed #3567 (False positives in boolean expressions)
2012-03-07 20:31:23 +01:00
Daniel Marjamäki
680883a6a7
fixed #3649 (False Positive: Uninitialized variable using operator assignment)
2012-03-06 18:51:50 +01:00
Daniel Marjamäki
527d3791e6
Fixed #3596 (memory leak false positive on libedit sources)
2012-02-27 18:55:36 +01:00
Daniel Marjamäki
39b0f1ba95
Fixed #3608 (unreadVariable when variable used in inline assembly)
2012-02-19 16:04:35 +01:00
Daniel Marjamäki
a118f82ca7
Tokenizer::simplifyVarDecl: Don't simplify inside parenhteses
2012-02-18 15:05:29 +01:00
Daniel Marjamäki
0705dbd34a
Tokenizer::simplifyCasts: don't simplify 'f((double)(v1)*v2)' to 'f(*v2)'
2012-02-18 14:26:00 +01:00
PKEuS
485e836535
Refactorizations in MathLib.
...
Fixed recently introduced bug on floating point numbers with multiple preceding zeros (for example 004.123)
2012-02-17 19:54:53 +01:00
PKEuS
8ea5df62c4
- Improved support for numbers in code:
...
-- Use MathLib::toLongNumber for conversion in tokenizer (Fix #3610 )
-- Handle octal numbers in tokenizer
- Refactorizations in MathLib::toLongNumber and Settings
2012-02-17 15:47:08 +01:00
Daniel Marjamäki
da8abeb63c
Fixed #3584 (2 internal errors : Token::Match called with varid 0)
2012-02-12 17:30:47 +01:00
Daniel Marjamäki
bbb707c460
Fixed #3587 (Wrong tokenizer simplification - variable assigned by operator>>)
2012-02-07 08:05:50 +01:00
Daniel Marjamäki
2be85e9d37
Fixed #3538 (false positive caused by bad tokenizer simplification)
2012-02-01 21:13:26 +01:00
Edoardo Prezioso
66e1761ffe
Fixed ticket #3571 (segmentation fault of cppcheck while scanning gcc-testsuite).
2012-01-31 18:42:19 +01:00
Edoardo Prezioso
9f81b48dc1
Fixed ticket #3558 (Tokenizer: improve simplifyVarDecl to take count of undefined size VLA's).
2012-01-30 23:41:43 +01:00
Edoardo Prezioso
0fd7504295
Related to ticket #3560 (conditional pointer user): remove also dead code in the lower scope if the actual scope isn't special.
2012-01-30 21:43:23 +01:00
Daniel Marjamäki
9df6088ddd
Revert "really fix #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)"
...
This reverts commit a37031944e
.
I don't want this hard coding of macro names. Feel free to come with a more generic solution if you want.
2012-01-30 06:15:41 +01:00
Robert Reif
a37031944e
really fix #3527 (Internal error. Token::Match called with varid 0. Please report this to Cppcheck developers)
2012-01-28 20:58:51 -05:00
Edoardo Prezioso
7cf8e5dfff
TestTokenizer: moved test to proper place.
2012-01-26 22:25:19 +01:00
Edoardo Prezioso
5953ed7318
Fixed ticket #3528 (Tokenizer: improve simplifyFunctionParameters to take count of square brackets)
2012-01-23 16:10:15 +01:00
Daniel Marjamäki
9eb1a5864b
Fixed #3502 (segmentation fault of cppcheck (struct{x y:};))
2012-01-23 07:39:31 +01:00
Edoardo Prezioso
2a2d01a870
Remove some redundant 'errout.str("")' in some checks because it's already done inside tok call.
2012-01-21 00:59:12 +01:00
seb777
0be8af5214
Fix ticket #3530 (Add some windows data types to tokenizer)
2012-01-18 12:57:41 +01:00
Edoardo Prezioso
c5f7db0645
TestTokenizer: Remove redundant ';' in 'inlineasm' testcases.
2012-01-15 19:49:17 +01:00
Edoardo Prezioso
4d239d0bf7
Run astyle.
2012-01-15 19:47:51 +01:00
Edoardo Prezioso
963f6ce3ef
Tokenizer: report syntaxError if there's nothing after 'if|for|while ()' and if there's nothing inside round brackets;
...
TestTokenizer: change test cases accordingly;
TestSimplifyTokens: ditto.
2012-01-15 14:50:01 +01:00
Daniel Marjamäki
a6d96f5b72
Fixed #3496 (false positive: syntax error)
2012-01-15 14:33:53 +01:00
Edoardo Prezioso
6a248c35b5
Fixed ticket #3512 (segmentation fault of cppcheck ( 1 *p = const))
2012-01-14 00:43:58 +01:00
Daniel Marjamäki
0648b3ed5e
Fixed #3504 (segmentation fault of cppcheck)
2012-01-13 07:57:12 +01:00
Edoardo Prezioso
2dd53ec966
Fixed ticket #3485 (segmentation fault of cppcheck ( {a:1;}; ))
2012-01-09 16:24:11 +01:00
Edoardo Prezioso
54f54761b4
Fixed ticket #3482 (segmentation fault of cppcheck ( switch(){case} ))
2012-01-09 14:37:20 +01:00
Edoardo Prezioso
75fbe310ff
Extract various functions inside the Tokenizer class and fix tokenization of 'return __LINE__ ;'.
2012-01-04 12:57:58 +01:00
Daniel Marjamäki
e4f3f91c18
Reverted 9aa8a496
. I don't know why I made this fix.
2012-01-02 19:45:20 +01:00
Edoardo Prezioso
38ee7523ad
Remove redundant testcase I forgot to remove in previous commit.
2012-01-02 19:41:08 +01:00
Edoardo Prezioso
eb657034ba
Handle also C# multidimensional arrays with no specified dimension.
2012-01-02 00:22:45 +01:00
Reijo Tomperi
8cae17fda8
Update year to 2012
2012-01-01 01:05:37 +02:00
Edoardo Prezioso
38e0e25ce0
Fixed ticket #3448 (segmentation fault of cppcheck).
...
Add testcase related to previous commit (add 'A f(&x);' as declaration of variable).
2011-12-31 21:44:07 +01:00
Edoardo Prezioso
8f2ad53332
Add testcase for previous commit.
2011-12-30 18:47:42 +01:00
Edoardo Prezioso
873572d489
Improve C# simplification code with arrays of arrays.
2011-12-30 12:26:28 +01:00
Reijo Tomperi
1afd923d34
Fix bug in C# detection code. The test had a bug also, so it was not detected by the test.
2011-12-27 22:50:56 +02:00
Daniel Marjamäki
987392f254
Tokenizer: Better handling of array of function pointers
2011-12-27 11:56:40 +01:00
PKEuS
46c2bde118
Activate tests in TestTokenizer
2011-12-18 17:54:24 +01:00
Daniel Marjamäki
2bb5de4c89
Fixed #3425 (False positive: Null pointer dereference (pointer is checked in macro))
2011-12-18 13:33:23 +01:00
Daniel Marjamäki
83cdf734fe
Tokenizer: The tokenizer didn't handle '0x0E-7' correctly
2011-12-18 07:37:20 +01:00
Daniel Marjamäki
d21ca7881c
Fixed #3424 (Tokenizer: doesn't tokenize if-if-else-else correctly)
2011-12-17 19:05:14 +01:00
PKEuS
c9f5117cf5
Fixed #3407 (False positive: (inconclusive) Found duplicate branches for if and else. (inline assembler))
2011-12-13 21:42:38 +01:00
Edoardo Prezioso
79b82f115f
Tokenizer: some changes to line numbers of some tokens:
...
simplifyAsm: change line number of newly added 'asm ( )' in order to be the same as next ';'.
simplifyIfAddBraces: Change line number of newly added '}' in order to be the same as next 'else', except for '{ ; } else'.
2011-12-12 20:55:25 +01:00
Edoardo Prezioso
6506b2c016
Oops. Fix testrunner fail.
2011-12-11 20:36:56 +01:00
Edoardo Prezioso
3c098839d1
simplifyIfAddBraces: Remove restriction for jumping opening parenthesis '(' as a fix to #2873 , because even without this the original test case doesn't crash anymore. Add more jumping patterns.
...
simplifyFunctionParameters: Add more jumping patterns and an observation related to error message for equal parameter names, help needed.
Fix grammar mistake in comment.
2011-12-11 13:07:13 +01:00
Edoardo Prezioso
27801b35eb
Other improvements to tokenizer code.
...
Handle SQL code better, even when there's no ';' after 'EXEC SQL'.
simplifyVarDecl: Check with 'Token::Match' once when you have to check a pattern inside which there should be a number or a variable. Use '%any%' and after that check if that string is a number or a variable name later.
simplifyGoto: process also anonymous structs and unions which should have 'indentspecial' incremented, skip code like 'var = { ... }'.
2011-12-11 02:02:38 +01:00
Edoardo Prezioso
5134964026
Fix code in commit 5f522fb841
and reapply it again.
2011-12-10 23:49:56 +01:00
Daniel Marjamäki
04159b81b8
reverted 5f522fb841
, to avoid hang in TestBufferOverrun::arrayInfo
2011-12-10 20:51:36 +01:00
Edoardo Prezioso
5f522fb841
Tokenizer: improve code and remove redundant checks.
...
In particular: improve 'double sharp' concatenation by handling also code which begins without the [{};]. Do the same with C# code. Also, in the labels simplification function, skip also '{}' when the open bracket is after a '='.
2011-12-10 18:45:27 +01:00
PKEuS
9b685ba3c3
Code cleanup
2011-12-09 21:00:57 +01:00
Edoardo Prezioso
7d12951da0
1)Fixed ticket #3184 (Improve Tokenizer: improve simplifyMulAnd to simplify weirder code);
...
2)Fix a test case inside TestSimplifyTokens::flowControl.
2011-12-09 20:47:51 +01:00
PKEuS
167a7e3e51
Various code cleanups
2011-12-08 21:28:34 +01:00
PKEuS
1c1c31bea0
Tokenizer: Refactorings and improvements. Better handling of []
2011-12-07 21:15:00 +01:00
Edoardo Prezioso
eb5fe250ab
Partial fix ticket #3385 ('throw' isn't removed if the argument of the function is type 'struct|class').
2011-12-06 21:02:26 +01:00
Edoardo Prezioso
0504952950
Remove some redundant parenthesis - part 9
2011-12-06 16:53:57 +01:00
Edoardo Prezioso
b45d63a10a
Remove some redundant semicolons - part 5
2011-12-04 17:15:53 +01:00
Edoardo Prezioso
2fc067e6ab
Tokenizer::simplifyConst : handle also '%type% const' when the 'type' token is the first one in the list.
2011-12-04 16:59:19 +01:00
Edoardo Prezioso
a363749a17
1) Remove some redundant semicolons - part 4 ('typedef' != _tokens.str());
...
2) Tokenizer: Use Token::eraseTokens instead of using the same instructions as the ones inside such function.
2011-12-04 15:40:05 +01:00
Daniel Marjamäki
eeb6dc48a5
Fixed #3359 (False positive: array[idx++] += val triggers unexpected 'Array index out of bounds' error)
2011-12-04 12:22:21 +01:00
Edoardo Prezioso
42a557432d
Remove some redundant semicolons - part 3
2011-12-02 23:04:06 +01:00
Edoardo Prezioso
c2ddb67316
Remove some redundant semicolons - part 2
2011-12-02 22:58:29 +01:00
Edoardo Prezioso
ff1cb241a8
Remove some redundant semicolons - part 1
2011-12-02 22:39:33 +01:00
Marek Zmysłowski
3ae96600b5
Fixed #3212 (Simplify the double pointer cast)
2011-11-25 07:23:54 +01:00
Daniel Marjamäki
17f891ad34
Tokenizer::setVarId: Fixed problem with class declarations with inheritance. skip them.
2011-11-21 21:18:56 +01:00
Daniel Marjamäki
9aa8a49677
Tokenizer::setVarId: fixed 'using' bug
2011-11-21 18:04:42 +01:00
Daniel Marjamäki
004dcf834b
Fixed #3281 (Tokenizer::simplifyKnownVariables : static constant value is not used)
2011-11-20 21:50:26 +01:00
Daniel Marjamäki
b26811cdf5
astyle formatting
2011-11-20 16:50:41 +01:00
Daniel Marjamäki
097637a66c
Fixed #3316 (Cppcheck reporting internal errors - code compiles cleanly)
2011-11-20 16:22:21 +01:00
Edoardo Prezioso
42e369a4b4
Change every 'tokAt(..)->link()' to 'linkAt(..)'.
2011-11-20 14:24:27 +01:00
Daniel Marjamäki
1cf45a5cde
Fixed #3280 (False positive: assigned value that is never used)
2011-11-20 12:09:07 +01:00
Daniel Marjamäki
8c091ff968
Fixed #3340 (Internal error. Token::Match called with varid 0... union is causing problems)
2011-11-20 08:13:28 +01:00
Edoardo Prezioso
5cbfbe31c1
Add removal of consecutive braces, i.e.: '{ { ... } }'->'{ ... }'.
...
Changed a little bit the dead code tests.
2011-11-12 12:07:10 +01:00
Daniel Marjamäki
34e40502c6
Fixed #3314 (cppcheck incorrectly reporting Syntax error.)
2011-11-11 10:53:49 +01:00
Reijo Tomperi
ca70693055
Astyle fix
2011-11-10 22:32:37 +02:00
Richard Quirk
f56aa19fac
Fix varid 0 with function pointer and virtual methods
2011-11-09 21:07:55 +01:00
Daniel Marjamäki
2d00cabee1
Fixed #3279 (Token::Match called with varid 0)
2011-11-09 18:49:17 +01:00
Edoardo Prezioso
392f705b73
Oops.
2011-11-08 23:10:53 +01:00
Edoardo Prezioso
0569953753
Fixed ticket #3309 (false positive: (style) Boolean result is used in bitwise operation. Clarify expression with parentheses)
2011-11-08 22:48:14 +01:00
Edoardo Prezioso
3cc9a333c9
Fixed tokenizer: don't change '*(str+num)' if '*' means a product with a previous variable or number.
...
Ditto for '&str[num]' (still commented).
2011-11-08 18:14:43 +01:00
Edoardo Prezioso
aaa77c4709
Improve tokenizer: remove more redundant parenthesis and add a prototype code for: '&str[num]'=>'(str+num)' with reporting non obvious test failures.
2011-11-07 23:40:06 +01:00
Edoardo Prezioso
6e2f2816de
Improve same expression check: remove '%op%' pattern and add ',' for the same expressions as an argument inside a function.
...
Improve compound assignment simplification: use already defined 'isAssignmentOp' and extend the adding parenthesis to a generic operator, not only to the arithmetical ones. See: http://en.cppreference.com/w/cpp/language/operator_precedence
2011-11-06 14:35:53 +01:00
Daniel Marjamaki
b96ab6ba26
Fixed #3188 (Function parser false positive)
2011-11-05 12:23:05 +01:00
Daniel Marjamäki
085a6285fa
Fixed #3117 (Tokenizer::simplifyKnownVariables : Don't simplify static variable that is changed)
2011-11-05 08:30:11 +01:00
Daniel Marjamaki
b6b5416b42
Tokenizer: Fixed failed unit test
2011-11-02 20:42:38 +01:00
Daniel Marjamaki
0884204c2f
Fixed #3279 (Token::Match called with varid 0)
2011-11-02 18:31:13 +01:00
Daniel Marjamaki
937a4497ca
Fixed #3272 (Internal error)
2011-11-01 18:03:32 +01:00
Daniel Marjamäki
a7f27a83a7
Fixed #3271 (Regression: something related to symbol database / varid)
2011-10-31 18:33:15 +01:00
Daniel Marjamäki
92333b585a
Fixed #3092 (Tokenizer::setVarId : shadow variable in member function gets the wrong varid)
2011-10-29 21:25:58 +02:00
Daniel Marjamäki
8f49eb6a7e
Tokenizer: Make sure that friend classes don't get varid. Ticket: #2962
2011-10-29 18:22:58 +02:00
PKEuS
d6261debdf
Fixes false positives in test suite, adds unit test for void-simplification
2011-10-27 21:54:42 +03:00
Edoardo Prezioso
73f0e2c5b9
Fixed ticket #3227 (Improve tokenizer: labels are not handled correctly after a case or another label instruction)
...
Moved the labels simplification after combining the tokens and moved the case/default simplification inside the labels.
2011-10-19 14:20:09 +02:00
Thomas Jarosch
a52b73f9f9
Fix #3208 (Simplify pointer to standard type, C only)
...
The symbol database is unavailable during token simplification
and &data[0] might return something completely different for C++.
Moved code_is_c() from checkOther to Tokenizer.
2011-10-16 08:09:57 +02:00
Daniel Marjamäki
6f8e42a5af
changed the astyle formatting flags
2011-10-13 20:53:06 +02:00
Edoardo Prezioso
16506f0a8c
Remove redundant simplifyDeadCode call inside the Tokenizer::tokenize and move the relative tests in the file 'testsimplifytokens.cpp'.
2011-10-13 12:26:27 +02:00
Daniel Marjamäki
371871b0b7
Tokenizer::removeMacrosInGlobalScope: Don't remove C/C++ keywords namespace/struct/etc. Ticket: #3193
2011-10-12 19:23:39 +02:00
Robert Reif
ee04c1bfb7
fix #3194 (Parsing glitch causes false 'can be const' error for an 'if' statement)
2011-10-12 09:10:34 -04:00
Daniel Marjamäki
96beb94b21
Fixed #3183 (False positive: (error) syntax error)
2011-10-09 18:42:36 +02:00
Edoardo Prezioso
9270b84d64
More fixes to the label simplifier (related to ticket 3176):
...
1)Simplify the labels if there are combinations of the symbols '*','&','{' and '(' after a '%var% :' and before another '%var%';
2)but do not simplify the label if it's inside an unpreprocessed macro code.
2011-10-08 21:13:53 +02:00
Edoardo Prezioso
80df7ea839
Fixed ticket #3176 (cppcheck reports wrong unused variable)
...
Label simplification didn't take count of the '(' parenthesis or the '&' and '*' operators inside or outside the parenthesis after the colon.
2011-10-07 00:54:44 +02:00
Edoardo Prezioso
fe4ce594ce
Renamed the function 'removeRedundantCodeAfterReturn' with 'simplifyDeadCode'.
...
This is a preparation in order to add new features to this function (see the @todo in the tokenize header file, ticket #3113 and #3175 for details).
2011-10-06 22:40:39 +02:00
Edoardo Prezioso
8e90ad106c
Fixed ticket #3148 (Analysis failed on "Modules/mathmodule.c")
...
Fix: Do not handle code when 'return' is inside a macro. This is valid also for 'switch' code inside a macro.
2011-10-05 19:33:46 +02:00
Edoardo Prezioso
3c370dcfdf
Fixed #3146 "Analysis failed" error on softmagic.c:
...
-Fixed: the code didn't check the rightness of the switch syntax if it was inside another switch;
-Tweaked: removed the two bool variables, so now the conditions take count of indentation unsigned variables.
2011-10-04 12:16:39 +02:00
Edoardo Prezioso
bc74213036
Fixed #3132 (Analysis failed. If the code is valid then please report this failure.)
2011-10-03 19:38:37 +02:00
Robert Reif
44a926aa4d
add a few more Microsoft TCHAR function conversions
2011-09-27 07:29:36 -04:00
Robert Reif
ec377d24eb
add support for Microsoft TCHAR character constants
2011-09-26 22:08:24 -04:00
Robert Reif
6e8bf43dc0
add some Windows TCHAR scanf and printf conversions
2011-09-25 10:02:27 -04:00
Robert Reif
545aa9e55b
start adding Windows wide character support
2011-09-24 16:02:56 -04:00
Robert Reif
f97424b242
start adding Windows ASCII TCHAR conversion support
2011-09-24 14:51:03 -04:00
Robert Reif
97d4277854
add Microsoft memory function conversions to standard cstring functions
2011-09-22 19:59:56 -04:00
Robert Reif
4d1dda10fa
add some more windows type conversions
2011-09-20 20:17:02 -04:00
Robert Reif
af5272dfb0
only simplify Microsoft MFC code when Windows platform is selected
2011-09-20 07:20:37 -04:00
Robert Reif
e234e8cc5b
add some common windows pointer type conversions to standard types
2011-09-19 23:14:58 -04:00
Robert Reif
be660003ec
start adding conversions from common Windows types to standard types
2011-09-18 13:06:54 -04:00
Robert Reif
66eb37c135
convert size_t to standard type
2011-09-18 10:31:31 -04:00
Robert Reif
3e35ea0972
fix sizeof long double for unix64 for #2888 (Allow defining sizes of base types)
2011-09-18 08:40:08 -04:00
Robert Reif
b5d22fda0d
fix #2888 (Allow defining sizes of base types)
2011-09-17 19:40:52 -04:00
Robert Reif
cce4303f28
fix a problem with Qt slots immediately followed by signals
2011-09-16 16:59:43 -04:00
Edoardo Prezioso
1ff7410f4f
Fixed #3075 (False positive => Improve tokenizer: remove redundant code after a 'return' state)
2011-09-13 07:55:47 +02:00
seb777
f3193ef611
Remove invalid test case.
...
The code does not compile. In addition, it's a "todo test case".
2011-09-12 19:38:38 +02:00
seb777
8ed0e3a239
Revert "The case statement requires constant-expression (C, C++, C# and Java."
...
This reverts commit 5879fe419d
.
2011-09-11 00:44:40 +02:00
seb777
5879fe419d
The case statement requires constant-expression (C, C++, C# and Java.
...
Needless to simplify the calculation of a piece of code that can not compile.
2011-09-10 17:28:32 +02:00
seb777
08efad13b2
fix #3093 (Simplify code (math expression) with keywords 'return' and 'case')
2011-09-10 13:28:54 +02:00
seb777
5c7ed46e0c
Following the discussion XX, replace the keyword C99 '_Bool' with the 'bool' keyword in the process of tokenization\nSee f29b7f9f08
2011-09-03 23:15:33 +02:00
Daniel Marjamäki
a96028b43b
Fixed #3058 (False positive: Uninitialized variable: data)
2011-08-31 19:45:20 +02:00
Daniel Marjamäki
0529654e37
Fixed #3058 (False positive: Uninitialized variable: data)
2011-08-30 19:13:04 +02:00
Robert Reif
423a1ff64e
add support for simplifying Qt emit in tokenizer
2011-08-25 20:54:35 -04:00
Daniel Marjamäki
7afec3cf6d
Fixed #3032 (False positive: possible null pointer dereference (assignment in condition))
2011-08-21 17:49:00 +02:00
Robert Reif
a6c5eff1be
fix #3006 (segmentation fault of cppcheck ( x < () < ))
2011-08-15 07:19:49 -04:00
Robert Reif
ce00d0d35e
fix #2963 (FP: Typedef names considered duplicate because __LINE__ not expanded)
2011-08-11 18:18:47 -04:00
Robert Reif
afe95be966
fix #2980 (segmentation fault of cppcheck)
2011-08-08 06:58:55 -04:00
Kimmo Varis
cfcfa3f000
Use "enabled" list for the style checking.
...
Settings-class currently enables style checking via dedicated
boolean attribute. All other CLI's enable-options are handled
through the enable-list. This commit moves style-check enabling
to use the enable-list.
Main advantage is the consistency how options are handled/stored
in the Settings class. Which also unifies using them for the other
code. You need to enable certain type of checks? Use the
addEnabled()-method. You want to check if certain type of checks
are enabled? Use the isEnabled()-method.
2011-08-07 10:28:52 +03:00
Robert Reif
3bd8bf0e75
run astyle
2011-08-06 17:53:06 -04:00
Simon Martin
13360c2a66
Fixed #2870 (Tokenizer: simplify '0 |')
2011-08-06 06:50:29 +02:00
Robert Reif
9b9a0de777
add test for #2937 (Scope::checkVariable found variable 'sMMF' with varid 0.)
2011-08-01 06:45:06 -04:00
Daniel Marjamäki
0dd5472642
Tokenizer::simplifyFunctionPointer: don't simplify function call. Ticket: #2873
2011-07-22 07:58:53 +02:00
Daniel Marjamäki
6ce5107e49
Tokenizer: Better handling of constants. Related with #2920
2011-07-20 09:07:47 +02:00
Daniel Marjamäki
cf3ab649fb
Fixed #2873 (segmentation fault of cppcheck while scanning rose-compiler suite)
2011-07-16 19:26:11 +02:00
Daniel Marjamäki
274fd2b985
Tokenizer: Fix minor problem with 'X&&Y'
2011-07-15 19:37:39 +02:00
Reijo Tomperi
89fd5bacf9
Fix #2849 , False positive: memory leak (using question mark operator)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/2849
Simplify: *d = b ? b : a; into if-else
Simplify { ; { ; } } into { ; }
Removed one memleak test which should be redundant now as question marks
should not get into memleak check.
2011-06-30 22:04:26 +03:00
Robert Reif
586fdd24f2
fix #2825 (missing varid on class variables when multiple inheritance is used)
2011-06-29 20:04:04 -04:00
Robert Reif
70a32fc245
fix #2875 (segmentation fault of cppcheck ( 0; (a) < (a) ))
2011-06-28 18:47:18 -04:00
Daniel Marjamäki
40a14736b7
Added TODO test case for the simplifyKnownVariables to better simplify local variables
2011-06-23 17:03:14 +02:00
Daniel Marjamäki
2d1b7285d2
Fixed #2815 (FP: Null pointer dereference error about a member)
2011-06-23 16:58:01 +02:00
Robert Reif
db39f4364e
fix #2845 (segmentation fault of cppcheck)
2011-06-21 07:31:55 -04:00
Robert Reif
e584b08066
fix #2835 (crash of cppcheck ( ><,f<i, ))
2011-06-12 12:09:52 -04:00
Robert Reif
729ee72a5a
fix #2831 (crash of cppcheck ( z<y<x> ))
2011-06-12 08:38:15 -04:00
Robert Reif
5e3263235b
fix #2739 (segmentation fault of cppcheck ( if()x ))
2011-06-11 15:51:12 -04:00
Daniel Marjamäki
ab1b293f23
Fixed #2737 ((error) Analysis failed. If the code is valid then please report this failure.)
2011-05-19 17:04:36 +02:00
WenChung Chiu
1ea52cfa02
Fixed #2784 (Pointer issue: *&f=open())
2011-05-18 07:25:30 +02:00
Daniel Marjamäki
8e5c63104c
Fixed #2743 (segmentation fault of cppcheck 'std::vector<void(*)()> v1 = a, v2 = b;')
2011-05-07 14:23:14 +02:00
Daniel Marjamäki
168bd2ebfc
Fixed #2760 (false positive: uninitialized variable ', (a) =')
2011-05-01 08:27:59 +02:00
Daniel Marjamäki
68efad05af
TestTokenizer: code cleanup
2011-05-01 07:50:19 +02:00
Robert Reif
e30852200e
fix tokenizer bug where 'class B : private ::A { };' was tokenized to 'class B : private: : A { } ;'
2011-04-29 09:19:22 -04:00
Robert Reif
670741271e
fix #2746 (false positive: syntax error (typedef in __attribute__ )))
2011-04-23 21:04:02 -04:00
Robert Reif
cd64d8476c
fixed #2614 (missing varid on function parameter)
2011-04-23 09:37:50 -04:00
Robert Reif
c5b81c6a79
add another test case for #2614 (missing varid on function parameter)
2011-04-22 21:23:40 -04:00
Robert Reif
1b7183a294
fix previous patch: test for #2614 (missing varid on function parameter)
2011-04-18 18:53:11 -04:00
Robert Reif
6a09ee0be1
add test for #2614 (missing varid on function parameter)
2011-04-18 07:45:38 -04:00
Daniel Marjamäki
7021e3224b
Fixed #2714 (False positive: ternary operator and += style warning.)
2011-04-14 17:30:50 +02:00
Robert Reif
23e4f020e9
fix #2706 (Analysis failed. If the code is valid then please report this failure.)
2011-04-04 22:18:12 -04:00
Daniel Marjamäki
ed8cdddcf5
Tokenizer: execute the simplifyIfNot and simplifyIfNotNull in the normal token list. ticket #2642
2011-04-02 21:21:05 +02:00
Daniel Marjamäki
ae2a8d839b
Fixed #2693 (__declspec attribute not removed properly)
2011-03-30 19:49:55 +02:00
Stefan Weil
675e63b6a7
Spell checks
2011-03-30 16:45:31 +02:00
Robert Reif
e9a23d9cb5
fix #2692 (False positive: if parsed as function in operator >>)
2011-03-28 20:02:06 -04:00
Daniel Marjamäki
e89f6d6ec0
Fixed #2660 (False positive: Variable 'v' is assigned a value that is never used)
2011-03-27 08:19:09 +02:00
Daniel Marjamäki
3c2d3ca3a4
Fixed #2653 (segmentation fault of cppcheck 'x=b=0;')
2011-03-26 12:20:23 +01:00
Daniel Marjamäki
7d9872a134
Tokenizer::setVarId: Prevent that wrong varid is given when uncertain. Ticket: #2680
2011-03-26 10:05:07 +01:00
Daniel Marjamäki
2b1277aa64
Fixed #2680 (setVarId: variables with class qualification don't get varid)
2011-03-26 08:56:41 +01:00
Robert Reif
710eb8ffd9
add support for global namespace to Tokenizer::simplifyVarDecl()
2011-03-24 23:06:20 -04:00
Robert Reif
cbc81e20f5
fix Tokenizer::simplifyVarDecl() template assignment
2011-03-23 21:15:49 -04:00
Robert Reif
3259239dfe
fix #2672 (False positive: function can be const, nested classes declared in one line)
2011-03-23 07:48:18 -04:00
Robert Reif
c043e6e1a2
fix
2011-03-21 20:57:17 -04:00
Robert Reif
dc0dfea079
fix invalid bitfield match and simplification that created invalid code
2011-03-21 20:17:14 -04:00
Robert Reif
fc13854095
fix #1280 (Pointer to function support)
2011-03-19 16:21:26 -04:00
Robert Reif
92316e5745
fix #1987 (Internal error:: CheckClass::SpaceInfo::getVarList found variable 'element_size' with varid 0.)
2011-03-19 16:00:43 -04:00
Daniel Marjamäki
31af3a64bc
Tokenizer::setVarId: Fixed problem with same variable name in multiple classes
2011-03-19 11:09:51 +01:00
Daniel Marjamäki
45a3828da7
Tokenizer::setVarId: Better handling of class declarations when variable usage comes before variable declaration
2011-03-19 09:04:03 +01:00
Robert Reif
afc7fd82ed
#2630 (segmentation fault of cppcheck (template <typedef A>)
2011-03-18 20:44:58 -04:00
Daniel Marjamäki
07fe361964
Fixed #2638 (Tokenizer::setVarId : varid is wrongly given when unknown macro is used)
2011-03-13 17:52:45 +01:00
Daniel Marjamäki
5a0ec56fc2
Fixed #2632 (segmentation fault of cppcheck ( void>(); void>() ))
2011-03-09 21:25:44 +01:00
Daniel Marjamäki
0b8581e717
Fixed #2620 (Tokenizer::setVarId : wrong handling of member function parameters)
2011-03-08 20:41:41 +01:00
Daniel Marjamäki
779dba9160
Fixed #2612 (segmentation fault of cppcheck ( <><< ))
2011-03-06 09:33:46 +01:00
Daniel Marjamäki
d7a6e729b8
Tokenizer::simplifyKnownVariables: Don't simplify 'strcpy(a,"ab"); b=a;'. Ticket: #2031
2011-03-03 20:07:56 +01:00
Daniel Marjamäki
8e9a1c33ad
Fixed #2618 (Tokenizer::simplifyKnownVariables: Don't use known string value if address is wanted)
2011-03-01 20:20:48 +01:00
Daniel Marjamäki
db04d7b71e
Fixed #2616 (Segmentation fault with unknown macro)
2011-03-01 18:02:50 +01:00
Robert Reif
92efbd748e
fix #2595 bitfield fix for case x: break; and default: break;
2011-02-28 19:35:00 -05:00
Daniel Marjamäki
893b84a87c
Fixed #2615 (Segmentation fault in cppcheck 1.47)
2011-02-28 20:29:34 +01:00
Daniel Marjamäki
c1c9b96bb6
Fixed #2031 (Tokenizer: simplify known value (string has known value after strcpy))
2011-02-26 21:11:56 +01:00
Daniel Marjamäki
9bf6e67898
Fixed #2610 (segmentation fault of cppcheck ( if () < {} ))
2011-02-24 18:49:16 +01:00
Robert Reif
763763fa9b
fix bitfields to support non-numeric bitfield width
2011-02-20 18:22:49 -05:00
Daniel Marjamäki
63c003f92e
Tokenizer: fixed so that 'p=&x; if(p)' is simplified to 'p=&x;if(&x)'. Ticket: #2596
2011-02-20 18:18:27 +01:00
Daniel Marjamäki
cf2a04377e
Fixed #2586 (segmentation fault of cppcheck (template<>))
2011-02-17 21:15:17 +01:00
Daniel Marjamäki
54e0b60cc5
Fixed #2584 (false positive 'variable n is never used')
2011-02-16 20:33:24 +01:00
Daniel Marjamäki
0d2d0c864a
Tokenizer::simplifyKnownVariables: Fixed TODO testcases (better handling of comparisons)
2011-02-13 22:24:45 +01:00
Daniel Marjamäki
2182ede486
Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of ^)
2011-02-13 22:13:19 +01:00
Daniel Marjamäki
472d8154ca
Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of |)
2011-02-13 22:09:04 +01:00
Daniel Marjamäki
467c984cd1
Tokenizer::simplifyKnownVariables: Fixed TODO testcase (better handling of %)
2011-02-13 22:03:46 +01:00
Daniel Marjamäki
07e8325e50
Fixed #2549 (segmentation fault of cppcheck)
2011-02-12 16:51:59 +01:00
Robert Reif
95e917b27f
Tokenizer: Replace __null with 0 (gcc constant)
2011-02-05 09:03:31 +01:00
Daniel Marjamäki
defeded4b5
Fixed #2529 (False positive: array 'req[3]' index 4 out of bounds)
2011-02-01 21:46:07 +01:00
Pete Johns
098f0bf3e6
Fixed #2526 (Make TODO_ASSERT_EQUALS take three arguments (value, to_be, as_is)?...
...
Removed replaced EXPECTED with...
WANTED (to-be): The future expected value.
CURRENT (as-is): Documenting how cppcheck behaves now.
This removes the need for an ASSERT_EQUALS but enforces the check for every TODO_ASSERT_EQUALS.
2011-01-30 23:20:11 +11:00
Daniel Marjamäki
49fc53165c
Tokenizer: remove some unhandled macros in the global scope. ticket: #2523
2011-01-30 08:34:58 +01:00
Daniel Marjamäki
a299411a82
Tokenizer: Better simplifications of static constants
2011-01-29 16:14:09 +01:00
Daniel Marjamäki
83625d8055
Fixed #2505 (Check processing of a preprocessor macro 'FREE')
2011-01-28 09:19:30 +01:00
Daniel Marjamäki
88abeeebba
Fixed #2518 (Crash when checking rockbox's firmwire)
2011-01-27 21:16:25 +01:00
Daniel Marjamäki
524498e439
Tokenizer: collapse operator function names into a single token. ticket: #2519
2011-01-27 18:44:20 +01:00
Daniel Marjamäki
bc31f317bc
Fixed #2491 (Tokenizer::setVarId : wrong handling of function call: 'a(b * c, 1);')
2011-01-22 09:27:16 +01:00
Daniel Marjamäki
f72fd6960e
Fixed #2449 (segfault in tokenize.cpp, incorrect parsing)
2011-01-16 11:54:28 +01:00
Daniel Marjamäki
97d0755750
Fixed #2454 (Tokenizer::simplifyKnownVariables: problem with float/double variables)
2011-01-15 08:48:42 +01:00
Daniel Marjamäki
cf32016444
removed old comment
2011-01-15 08:30:54 +01:00
Daniel Marjamäki
79e52a8c45
Fixed #2296 (Tokenizer: simplifyKnownVariable doesn't simplify pointer properly 'delete [] p;')
2011-01-11 19:34:35 +01:00
Reijo Tomperi
226b605774
Change year 2010 -> 2011 in license texts.
2011-01-09 21:33:36 +02:00
Daniel Marjamäki
0b0c46e373
astyle formatting
2011-01-09 18:39:59 +01:00
Daniel Marjamäki
88abb32ddf
Fixed #2429 (Tokenizer: Wrong simplification of 'sizeof .1250E+04')
2011-01-09 10:09:54 +01:00
Daniel Marjamäki
1b3a5ed0be
Tokenizer: simplify NULL to 0 in the normal token list
2011-01-06 20:16:14 +01:00
Daniel Marjamäki
d700f25518
Fixed #2399 (Tokenizer::simplifyKnownVariables: variables in conditions)
2011-01-04 21:35:35 +01:00
Daniel Marjamäki
63c1ee375e
Fixed #2398 (false positive: Uninitialized variable)
2011-01-04 19:36:29 +01:00
Daniel Marjamäki
92acca3d0c
Fixed #2368 (assigned a value that is never used)
2010-12-27 20:49:07 +01:00
Daniel Marjamäki
2367cfcf1e
Fixed #2361 (false positive on t[0X10])
2010-12-27 08:09:05 +01:00
Daniel Marjamäki
6178459c15
Fixed #2304 (Tokenizer::simplifyKnownVariables: known strcpy parameter)
2010-12-26 20:34:07 +01:00
Daniel Marjamäki
f4581d833d
Tokenizer: Bailout if @ is encountered in the code
2010-12-26 15:07:14 +01:00
Daniel Marjamäki
10ee43790d
Fixed #2339 (Tokenizer::setVarId : Wrong handling of 'int gr = id - (TLFPressProperties::OIL_FLUID * nb);')
2010-12-25 12:40:44 +01:00
Daniel Marjamäki
6f8f0e1aa1
Fixed #2353 (Tokenizer::simplifyKnownVariables: wrong simplification after return)
2010-12-25 10:07:57 +01:00
Daniel Marjamäki
f392dbef95
Fixed #2338 (False positive: Deallocating a deallocated pointer)
2010-12-22 08:24:50 +01:00
Daniel Marjamäki
8ffc2b0ac6
Tokenizer: better handling for switch/break in the simplifyKnownVariables. Ticket: #2324
2010-12-18 11:14:31 +01:00
Daniel Marjamäki
7eb9855104
Tokenizer: Remove redundant parantheses in rhs. Ticket: #2320
2010-12-18 09:44:58 +01:00
Daniel Marjamäki
845d1491f9
Fixed #2307 (No constructor defined false positive when class is enclosed in namespace)
2010-12-17 20:56:46 +01:00
Daniel Marjamäki
2d97189486
Fixed #2311 (False positive: Index out of bounds)
2010-12-16 20:16:59 +01:00
vBm
46a11183a5
Fixed some spelling mistakes
2010-12-15 18:45:53 +01:00
Daniel Marjamäki
0b696b7079
Fixed #2280 (Tokenizer::setVarId : variable id not set for inner iterator)
2010-12-06 17:52:44 +01:00
Robert Reif
b29568c81d
Fixed #2271 (Tokenizer: simplify Qt signals and slots)
2010-12-03 08:14:09 +01:00
Robert Reif
eda4bcae29
Fixed #2271 (Tokenizer: simplify Qt signals and slots)
2010-12-02 17:41:49 +01:00
Robert Reif
f12c0c7ada
Tokenizer: add assert(_settings) to Tokenizer to insure the tokenizer always has settings. Ticket: #2219
2010-12-01 18:00:55 +01:00
Daniel Marjamäki
00da0adf25
Fixed #2236 (False positive: Assignment to itself)
2010-11-28 11:48:06 +01:00
Daniel Marjamäki
0a744c0c6e
Fixed #2234 (Variable is assigned a value that is never used)
2010-11-25 18:16:11 +01:00
Daniel Marjamäki
22a4dd2cc3
Fixed #2225 (false positive: variable is assigned a value that is never used '*(stack[0])+=arg')
2010-11-23 20:35:08 +01:00
Robert Reif
1842a122da
reuse symbol database in checkmemoryleak.cpp. ticket: #2219
2010-11-23 18:41:07 +01:00
Daniel Marjamäki
9d88e17c39
Tokenizer::simplifyKnownVariables: Reduce debug-warnings for conditional increment
2010-11-21 13:40:42 +01:00
Daniel Marjamäki
0fe4249cfc
Fixed #2216 (wrong warning when C++0x keyword delete is used)
2010-11-20 17:20:25 +01:00
Daniel Marjamäki
378e83e73d
Fixed #2201 (false positive: Uninitialized variable: __v0)
2010-11-14 17:35:22 +01:00
Daniel Marjamäki
71c1ce71ce
Tokenizer::simplifyKnownVariables: Simplify known variables for struct members
2010-11-13 18:45:35 +01:00
Daniel Marjamäki
723570fe6c
Tokenizer: added assertions to check that no debug messages are given.
2010-11-13 17:40:57 +01:00
Daniel Marjamäki
667cc8f6e5
Tokenizer: Skip debug warnings in Tokenizer::simplifyKnownVariables for loop variable
2010-11-13 16:40:04 +01:00
Daniel Marjamäki
5e93281310
Tokenizer: Added TODO test cases for splitting up variable declarations
2010-11-13 15:45:33 +01:00
Daniel Marjamäki
cd94fa89e0
Tokenizer: More specific bail outs in simplifyKnownVariables
2010-11-07 11:07:56 +01:00
Daniel Marjamäki
b881718d9f
Tokenizer: better bailout in simplifyKnownVariables when there is loop
2010-11-07 10:42:08 +01:00
Daniel Marjamäki
bd2b1b2914
Tokenizer: better handling of const variables
2010-11-07 08:43:30 +01:00
Daniel Marjamäki
25391cb562
Tokenizer: Bailout simplifyKnownVariables for loop variables
2010-11-07 08:10:09 +01:00
Daniel Marjamäki
5be12a1d27
Tokenizer: improved simplifyKnownVariables
2010-11-06 19:43:32 +01:00
Daniel Marjamäki
13c2a73d3f
Tokenizer::simplifyKnownVariables: Fixed TODO test case.
2010-11-06 11:38:58 +01:00
Daniel Marjamäki
694853249f
Refactoring: Added ASSERT_EQUALS above TODO_ASSERT_EQUALS to catch changes in the behaviour better
2010-11-06 11:08:05 +01:00
Daniel Marjamäki
314e5b838b
Tokenizer: removed redundant assignments such as 'x+=0;'. Ticket: #2173
2010-11-06 07:23:35 +01:00
Daniel Marjamäki
d21974777c
Fixed #2161 (false positive: assigned a value that is never used)
2010-11-04 20:16:17 +01:00
Daniel Marjamäki
fce6f11ed8
Tokenizer: simplify 'a[b-1]+=1' better
2010-11-04 19:02:54 +01:00
Daniel Marjamäki
c0100bac94
Tokenizer: Added TODO test case for better handling of function calls
2010-11-03 20:13:34 +01:00
Daniel Marjamäki
1323cbdb6d
Fixed #2160 ( #2160 (Invalid unused variable report (style)))
2010-11-03 19:30:00 +01:00
Daniel Marjamäki
dd4b2b8b46
Tokenizer: simplify 'x[0] += 1;'
2010-11-02 19:22:48 +01:00
Daniel Marjamäki
c4452effa3
Tokenizer: simplify 'x.y += 1;'
2010-11-01 20:33:55 +01:00
Daniel Marjamäki
1b9de20f9b
Tokenizer: simplify 'case 0: x += y;'
2010-11-01 19:31:30 +01:00
Daniel Marjamäki
3fb17baa12
Fixed #2158 (False positive: value is not unused when using +=)
2010-11-01 17:36:54 +01:00
Daniel Marjamäki
23d3fd3a5a
Fixed #2147 (uninitialized variable: false negative for 'x += y;')
2010-10-31 08:47:13 +01:00
Pete Johns
6649e31514
Fixed test case so that it would compile.
2010-10-27 21:14:40 +11:00
Daniel Marjamäki
a38b14d582
Tokenizer: Remove redundant semi colons
2010-10-26 21:05:20 +02:00
Daniel Marjamäki
6200d4505a
Fixed #2118 (Invalid syntax error report.)
2010-10-26 19:39:48 +02:00
Daniel Marjamäki
6a66d32871
JAVA: better handling of java code
2010-10-20 22:15:35 +02:00
Daniel Marjamäki
8b866178ff
Fixed #2103 (false positive when variable is checked to NULL and not freed)
2010-10-20 20:38:37 +02:00
Daniel Marjamäki
f8c02718a5
Activated checking of .java and .cs files
2010-10-19 21:54:15 +02:00
Daniel Marjamäki
81aed3fbd7
Tokenize: Fixed bug in Tokenize::simplifyKnownVariables
2010-10-10 19:27:42 +02:00
Daniel Marjamäki
e0ba626351
ClassInfo: Removed unused functionality
2010-10-08 19:43:41 +02:00
Daniel Marjamäki
a58ba811a6
Unit Testing: added missing TEST_CASE
2010-10-02 12:44:38 +02:00
Daniel Marjamäki
416f093fc3
Tokenizer: fixed variable declaration simplification
2010-09-15 19:53:47 +02:00
Daniel Marjamäki
0afd19c59b
Fixed #2039 (unions not handled properly, false positive about initialization)
2010-09-09 20:15:00 +02:00
Daniel Marjamäki
929a54e1b0
Fixed #2038 (memleak false positive with assignment expression in arguments)
2010-09-09 19:40:36 +02:00
Daniel Marjamäki
5af0d65aef
Fixed #2025 (iso646 c++ operators are not handled correctly)
2010-09-09 17:43:09 +02:00
Daniel Marjamäki
86a08b9f0e
unit testing: moved TestTokenizer::match tests to the TestToken
2010-09-07 20:42:29 +02:00
Daniel Marjamäki
3a4cda0f0d
Fixed #2034 (false positive: unused private function (Borland C++ __property))
2010-09-07 18:37:43 +02:00
Daniel Marjamäki
0f8bc429ad
Fixed #2021 (false positive: syntax error with -std=gnu++0x code)
2010-09-05 08:16:19 +02:00
Daniel Marjamäki
7d3ccb064b
Fixed #2020 (false positive: (error) Uninitialized variable, used in asm statement)
2010-09-05 08:06:37 +02:00
Daniel Marjamäki
51bc784537
Tokenizer: Fixed problem in Tokenizer::simplifyRedundantParanthesis when simplifying 'void delete(double num);'
2010-09-05 07:53:43 +02:00
Daniel Marjamäki
75fb99cee7
Fixed #2015 (### Internal error in Cppcheck. Please report it.)
2010-09-04 11:49:56 +02:00
Daniel Marjamäki
1938b8a423
Fixed #1976 (False Positives with unions)
2010-09-03 08:10:29 +02:00
Daniel Marjamäki
01b05618e5
Tokenizer: Fixed Cppcheck warnings
2010-09-02 20:51:01 +02:00
Daniel Marjamäki
eb74bfc15a
Fixed #2007 (False positive: member variable not initialized (Borland C++ property))
2010-09-01 18:10:12 +02:00
Daniel Marjamäki
55e0e435bd
Fixed #1959 (Do you support the oracle Pro*C ?)
2010-08-31 23:25:41 +03:00
Daniel Marjamäki
513826d8c2
Tokenizer::setVarId : don't give operator function variable id 'operator new []('. Ticket: #1997
2010-08-31 20:15:24 +02:00
Daniel Marjamäki
fbe11b9bb9
Fixed #1999 (False positive: uninitialized variable (__published variables))
2010-08-31 19:48:04 +02:00
Daniel Marjamäki
54e313efdc
Tokenizer: Added testcase that asserts that there are not internal errors when using typedefs. Ticket: #1887
2010-08-29 13:54:26 +02:00
Daniel Marjamäki
71453871d4
Fixed #1989 (false positive: Variable 'Aux13' is assigned a value that is never used)
2010-08-28 13:32:43 +02:00
Daniel Marjamäki
83a8879f11
Tokenizer::simplifyInitVar : Refactorings and fixes related to ticket #1989
2010-08-27 22:58:21 +02:00
Daniel Marjamäki
8eee4cf2e8
Fixed #1984 (false positive: syntax error in for loop (< -operator))
2010-08-26 23:24:01 +02:00
Daniel Marjamäki
57523574ef
Fixed #1985 (false positive: syntax error in try catch-block with for()-loop inside)
2010-08-26 23:19:18 +02:00
Daniel Marjamäki
8b18aaff25
Fixed #1981 (false positive: syntax error on template operator <)
2010-08-26 07:43:00 +02:00
Daniel Marjamäki
ca9cdf5bf5
Tokenizer: If syntax errors are found then don't return a token list. Ticket: #1961
2010-08-25 22:10:21 +02:00
Daniel Marjamäki
6c8287913c
Tokenizer: Detect some syntax errors when trying to use templates. Ticket: #1961
2010-08-25 21:57:57 +02:00
Robert Reif
4a6070d2af
fix 2 problems related to ticket 1976:
...
1. nested unnamed anonymous structures and unions were not supported.
2. declaration split up in class had bug if proceeded by access specifier.
2010-08-25 20:17:31 +02:00
Daniel Marjamäki
39a69b0871
Fixed #1970 (Internal error. CheckClass::SpaceInfo::getVarList found variable '_root' with varid 0.)
2010-08-23 21:22:11 +02:00
Daniel Marjamäki
f7063bed7c
Fixed #1967 (Tokenizer::setVarid doesn't set variable value (list of function pointers))
2010-08-23 20:15:02 +02:00
Daniel Marjamäki
3b716dfcc9
Tokenizer: Simplified the bitfields handling. This patch just looks for the bitfield signature but doesn't care about the type. I don't think any other code would have this same signature so it should be OK. We could add code to only look in structures and classes but I don't think that is necessary. Ticket: #1956
2010-08-23 07:29:05 +02:00
Robert Reif
cb7b508f77
Tokenizer::simplifyBitfields: fixed more issues. Ticket #1956
2010-08-22 13:25:47 +02:00
Robert Reif
3fcca23b53
Tokenizer: better handling of bitfields. Ticket: #1956
2010-08-22 09:41:22 +02:00
Robert Reif
77d634127c
Tokenizer: simplify DECLARE_DYNAMIC and DECLARE_DYNCREATE
2010-08-22 09:38:05 +02:00
Robert Reif
ac9078857e
Tokenizer: simplify bitfields. Ticket: #1956
2010-08-21 16:34:41 +02:00
Robert Reif
9c594684db
Tokenizer: handle DECLARE_DYNAMIC. Ticket: #1956
2010-08-21 07:55:14 +02:00
Daniel Marjamäki
741ce40e3d
Tokenizer::setVarId : fixed problem for class members
2010-08-20 19:28:10 +02:00
Daniel Marjamäki
cfa7b4906e
Symbol database: bug fixes. Ticket: #1895
2010-08-18 22:42:04 +02:00
Daniel Marjamäki
0934035fcf
Fixed #1955 (cppcheck hangs with 100% cpu load)
2010-08-18 22:22:14 +02:00
Daniel Marjamäki
aa00587fed
#1943 (segmentation fault of cppcheck (= default))
2010-08-17 19:50:21 +02:00
Daniel Marjamäki
64cdee62ef
Fixed #1942 (false positive: uninitialized variable in __asm__ statement)
2010-08-16 19:38:47 +02:00
Daniel Marjamäki
85acb005a2
Fixed #1941 (Internal error::Space Info::getVarList found variable with varid 0)
2010-08-16 18:51:25 +02:00
Daniel Marjamäki
fe482785aa
Variable Id: Fixed various bugs related to templates and bitfields. Ticket: #1928
2010-08-15 11:54:28 +02:00
Daniel Marjamäki
4ff9a1ac94
Fixed #1928 (missing varId for template class variable)
2010-08-14 20:50:49 +02:00
Daniel Marjamäki
a1f288d088
Tokenizer::setVarId : Fixed a problem when using static class members
2010-08-10 18:22:58 +02:00
Daniel Marjamäki
7c5219324e
Refactoring: Cleanup include that checkheaders reported as not needed
2010-07-26 22:05:51 +02:00
Daniel Marjamäki
0c65796984
Refactoring: Cleanup headers using checkheaders
2010-07-24 22:12:56 +02:00
Daniel Marjamäki
f69109fbf6
Fixed #1828 (### Internal error in Cppcheck. Please report it.)
2010-07-22 19:57:48 +02:00
Daniel Marjamäki
d4d0bc050a
Fixed #1865 (Tokenizer::simplifyRedundantParantheses: wrong handling of 'operator delete')
2010-07-19 12:06:20 +02:00
Daniel Marjamäki
61150498c4
Variable Id: fixed issue with function call. Ticket: #1848
2010-07-12 20:18:03 +02:00
Daniel Marjamäki
18a75edd20
Fixed #1823 (tokenize && wrong)
2010-07-05 22:41:02 +02:00
Daniel Marjamäki
b173d5f117
Fixed #1817 (False positive: Resource leak (casting))
2010-07-05 13:16:33 +02:00
Daniel Marjamäki
f82895c1f2
Fixed #1809 (false positive: uninitialized variable with nested if)
2010-06-26 17:15:44 +02:00
Robert Reif
539804369a
Fixed #1811 (false positive: Uninitialized variable)
2010-06-26 07:50:53 +02:00
Robert Reif
fac9f66cc0
Fixed #1810 (False positive: Variable 'separator' is assigned a value that is never used)
2010-06-22 17:07:41 +02:00
Daniel Marjamäki
85bf4b2be6
Fixed #1795 (false positive: nullpointer dereference (needs to improve Tokenizer::simplifyKnownVariables))
2010-06-19 17:54:38 +02:00
Daniel Marjamäki
82b63dd736
Fixed #1633 (tokenizer: simplifyKnownVariable: improved handling of arithmetic)
2010-06-19 14:00:45 +02:00
Daniel Marjamäki
a42273da63
Fixed #887 (Tokenizer: Simplify variable value after loop)
2010-06-15 17:56:14 +02:00
Daniel Marjamäki
cb7e9fbec1
Fixed #1776 (False Negative: Unitialized array)
2010-06-14 08:36:34 +02:00
Daniel Marjamäki
70bfa890a8
Fixed #1718 (Tokenizer add close braces to for loop at wrong place when if-else presents inside)
2010-06-13 08:00:46 +02:00
Daniel Marjamäki
e64ce2e812
Fixed #1781 (false positive: uninitialized variable when using asm statement in macro)
2010-06-09 21:28:15 +02:00
Robert Reif
4c4844b722
Fixed #1723 (Variable assigned value which is never used but is thrown)
2010-06-03 07:05:57 +02:00
Robert Reif
dc34a1b3ff
Fixed #1711 (Wrong typedef name shown when struct declared with __attribute__)
2010-05-27 18:15:42 +02:00
Daniel Marjamäki
f87eb774eb
Fixed #1646 (False positive: array access after return cannot have default loop value)
2010-05-18 19:55:23 +02:00
Daniel Marjamäki
56d176e1ce
Fixed #1684 (false positive: buffer access out of bounds when using extern variable declaration)
2010-05-16 20:21:22 +02:00
Daniel Marjamäki
d19dd2c61d
Fixed #1654 (False positive: Memory leak with: ( delete ( p ) , ( p ) = 0 );)
2010-05-07 18:37:50 +02:00
Daniel Marjamäki
c8c5f95721
Fixed #1651 (Tokenizer::setVarId wrong handling of return statement)
2010-05-06 18:40:52 +02:00
Daniel Marjamäki
af4c4cef34
Fixed #1646 (False positive: array access after return cannot have default loop value)
2010-05-05 18:29:56 +02:00
Daniel Marjamäki
612be2557b
Fixed #1646 (False positive: array access after return cannot have default loop value)
2010-05-04 20:02:47 +02:00
Daniel Marjamäki
804b2a0952
Fixed #1642 (Tokenizer::simplifyKnownVariables: simplify after loop)
2010-05-02 14:41:21 +02:00
Daniel Marjamäki
080374dc04
Fixed #1638 (Tokenizer::simplifyKnownVariables: removing variable declaration)
2010-05-01 10:09:53 +02:00
Robert Reif
99a7755218
tokenizer improvements: remove calling convention ( #1619 )
2010-04-24 09:40:05 +02:00
Zachary Blair
5835b2665b
Fixed #1169 (improve check: divsion by zero not detected when using the shift (>>) operator)
2010-04-23 22:59:53 -07:00
Daniel Marjamäki
c0e9a546f7
Refactoring: Refactoring the Settings class
2010-04-17 09:23:54 +02:00
Daniel Marjamäki
3fa2137ee3
Fixed #1596 ('Index out of bounds' false positive)
2010-04-15 19:09:19 +02:00
Robert Reif
176795ef95
Another fix for #1601 (change simplifyInitVar to split declaration from initialization)
2010-04-15 18:42:11 +02:00
Robert Reif
3bbb2e1d7f
Fixed #1601 (change simplifyInitVar to split declaration from initialization)
2010-04-14 19:04:16 +02:00
Reijo Tomperi
35d2a27b9c
Update copyright year in all source files
2010-04-13 22:23:17 +03:00
Daniel Marjamäki
05eb894b82
Unit Testing: Better unit testing of Tokenizer::setVarId. Related to ticket #1592
2010-04-12 21:16:47 +02:00
Daniel Marjamäki
ba2843883b
Added TODO testcase for ticket #1169 (improve check: divsion by zero not detected when using the shift (>>) operator)
2010-04-04 18:48:51 +02:00
Daniel Marjamäki
849be383e6
Tokenizer: tokenize 1E-2 into a single token
2010-04-04 08:01:05 +02:00
Daniel Marjamäki
0cad22314e
Reverted 'astyle fix'. Those changes are not in sync with my astyle configuration/setup.
2010-04-02 07:30:58 +02:00
Martin Ettl
193aa7d1d3
astyle fix
2010-04-02 02:21:53 +02:00
Daniel Marjamäki
a68d8dbc77
Fixed #1549 (false positive: uninitialized variable)
2010-03-31 20:20:51 +02:00
Robert Reif
ef57d01f7a
Fixed #1492 (false negatives: array index out of bounds)
2010-03-31 17:14:49 +02:00
Robert Reif
62d2845014
Fixed #1492 (false negatives: array index out of bounds)
2010-03-28 15:56:13 +02:00
Daniel Marjamäki
80edb4d8f4
Tokenizer: Simplify 'false ==' to '!'
2010-03-24 19:55:02 +01:00
Daniel Marjamäki
5b1b845750
Fixed #1504 (False positive: Cppcheck incorrectly reports that extern variable is not initialized)
2010-03-20 08:03:18 +01:00
Daniel Marjamäki
f687e85be5
Fixed #1498 (false positive: The function 'V<unsigned>::vSet' can be const)
2010-03-19 19:34:26 +01:00
Robert Reif
9c2248254e
Here is a patch that adds support for derived structs and fixes a bug that missed some nested structs. ( #1493 )
2010-03-19 16:17:25 +01:00
Robert Reif
5ea7e32bf9
Partial fix for #1493 (false positives: function can be const and struct or union member is never used)
2010-03-18 18:14:52 +01:00
Daniel Marjamäki
89719b023e
unit testing: made Tokenizer functions public so they can be unit tested
2010-03-17 22:08:02 +01:00
Daniel Marjamäki
382e41d92a
Fixed #1494 (Improve Tokenizer::simplifyKnownVariables to handle for loops better)
2010-03-14 09:57:34 +01:00
Reijo Tomperi
237fdbc653
Fix #1454 (False positive: arrayindexoutofbounds, static member sharing local name)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1454
2010-03-06 14:35:04 +02:00
Reijo Tomperi
13f8e10c40
Add TODO test cases for #1454 (False positive: arrayindexoutofbounds, static member sharing local name)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1454
2010-02-25 22:02:12 +02:00
Reijo Tomperi
23407c7f1d
Cleanup test/testtokenize.cpp a bit by putting duplicate code into a function.
2010-02-25 22:00:39 +02:00
Daniel Marjamäki
459a3bac50
Fixed #1396 (false positive: Resource leak)
2010-02-21 09:47:41 +01:00
Daniel Marjamäki
7a72932078
Tokenizer: simple simplification of array sizes
2010-02-20 18:13:09 +01:00
Daniel Marjamäki
e4cc8cf1a0
Fixed #1395 (false positive: Possible null pointer dereference)
2010-02-20 15:50:44 +01:00
Daniel Marjamäki
ccef1d6eb5
Fixed #1424 (false positive: unintialized variable)
2010-02-20 13:24:50 +01:00
Daniel Marjamäki
084b21494a
Fixed #1422 (false positive: uninitialized variable)
2010-02-20 11:43:53 +01:00
Reijo Tomperi
45abd2d7fc
Fix #1366 (void Tokenizer::simplifyTemplates() --> Abort)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1366
2010-02-09 00:16:12 +02:00
Daniel Marjamäki
8853f304af
Fixed #1364 (False positive: (error) Possible null pointer dereference)
2010-02-08 18:25:08 +01:00
Daniel Marjamäki
cd5b95849d
Fixed #1361 (### Internal error in Cppcheck. Please report it)
2010-02-07 15:00:19 +01:00
Daniel Marjamäki
fb09b2fd37
Fixed #1356 (Double-False positive: uninitialized variable)
2010-02-07 13:34:39 +01:00
Daniel Marjamäki
1b0c81a24b
Tokenizer: Fixed bug in setVarId. functions should never have a variable id
2010-02-07 13:04:33 +01:00
Reijo Tomperi
fb81100bec
Minor fix to previous commit
2010-02-06 00:30:47 +02:00
Reijo Tomperi
35f778716a
Test case for #1356 (Double-False positive: uninitialized variable)
2010-02-06 00:24:57 +02:00
Daniel Marjamäki
d3b5889f88
Fixed #1345 (Not initialised variables warning missing in classes with dllexport)
2010-02-03 20:01:56 +01:00
Daniel Marjamäki
4ec94116f5
Fixed #1341 (false positive 'uninitialized variable' when using Exception specifications)
2010-02-02 19:56:41 +01:00
Daniel Marjamäki
1a59e1bc68
Tokenizer: remove redundant assignments and variables
2010-01-31 09:52:19 +01:00
Daniel Marjamäki
e15a16eb15
Tokenizer: Remove redundant assignments and variables
2010-01-31 09:33:57 +01:00
Daniel Marjamäki
3b08712930
Fixed #1005 (improve check: nullpointer dereference not found when it is initialized with NULL-cast)
2010-01-30 09:33:16 +01:00
Reijo Tomperi
1d5ba4e320
Improved updateClassList(), but not yet took it into use.
...
findClassFunction is now non-static.
updateClassList usage is currently commented out as it doesn't handle class inside a function
2010-01-29 23:22:18 +02:00
Daniel Marjamäki
53f514fc5c
Tokenizer: Fixed const simplification
2010-01-29 19:34:43 +01:00
Daniel Marjamäki
6d9740adea
Tokenizer: Fixed Tokenizer::simplifyKnownVariable bug when the variable is re-assigned in a loop
2010-01-24 19:27:39 +01:00
Reijo Tomperi
7817d5b142
Fix #1279 (Change error message: Invalid number of character ({). Can't process file.)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1279
2010-01-23 23:18:11 +02:00
Daniel Marjamäki
d4b13eee9f
Fixed #1290 (1.40: Internal error)
2010-01-21 20:05:32 +01:00
Daniel Marjamäki
96359b14ff
Simplify function pointers
2010-01-20 21:19:06 +01:00
Robert Reif
a0caea4ee6
Refactoring the handling of typedefs
2010-01-16 09:18:21 +01:00
Reijo Tomperi
d37864f8c4
Fix part of #1262 (cppcheck false positives: 'Possible null pointer dereference'
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1262
2010-01-15 23:46:47 +02:00
Robert Reif
bcafb30d0d
Fixed #1211 (add struct support for constructor checks)
2010-01-02 17:29:55 +01:00
Daniel Marjamäki
6af5e434d8
Fixed #1204 (Tokenizer::findClassFunction broken)
2010-01-02 08:33:54 +01:00
Daniel Marjamäki
77c5b793c9
Fixed #1196 (Hang: Cppcheck hang for the file linux-2.6/drivers/crypto/hifn_795x.c)
2010-01-01 13:26:54 +01:00
Daniel Marjamäki
e0ecef5d71
fixed a hang in Tokenizer::simplifyFunctionParameters
2009-12-31 19:31:21 +01:00
Daniel Marjamäki
461d826eff
Fixed #1105 (improve check: uninitialized variable not detected for 'a = a')
2009-12-30 20:15:44 +01:00
Daniel Marjamäki
a7ab47bb98
Fixed #1067 (Tokenizer: K&R style function that returns function pointer)
2009-12-30 15:12:38 +01:00
Daniel Marjamäki
2de2ecafe4
Fixed #1168 (false positive: Uninitialized variable)
2009-12-30 08:24:27 +01:00
Daniel Marjamäki
197bcf17ba
Tokenizer: Simplify 'while (0)' better
2009-12-28 08:37:34 +01:00
Daniel Marjamäki
fe74c65c89
Robert Reif: code cleanup
2009-12-23 12:17:48 +01:00
Daniel Marjamäki
bc808710a0
Fixed #1097 (Internal error: When macro is not expanded 'ABC(for (i=0;i<10;i++) ..);')
2009-12-12 19:58:19 +01:00
Reijo Tomperi
f5849f9be2
Fix #1057 (Tokenizer: negative numbers are not tokenized correctly in switch-case)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1057
2009-12-07 00:09:56 +02:00
Daniel Marjamäki
e9b342c56b
Fixed #1046 (tokenizer: internal error for 'discard_block< (1 << 24), 10, 24 > u, v;')
2009-12-05 21:15:14 +01:00
Reijo Tomperi
54629ff221
Fix #1037 (tokenizing a nested do while, while loop fails)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/1037
2009-12-04 00:06:03 +02:00
Daniel Marjamäki
7f6f41fd53
Fixed #993 (Latest Git drop aborts at 63% of wine tree)
2009-11-22 09:06:39 +01:00
Slava Semushin
41b2a52915
Fixed #990 (Tokenizer::simplifyIfAddBraces() handle case where statement after if doesn't end by semicolon)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/990
2009-11-21 01:40:46 +06:00
Daniel Marjamäki
91f7c15c24
Fixed #960 (Tokenizer::validate() assertion failure with mismatched brackets)
2009-11-20 20:10:42 +01:00
Reijo Tomperi
bd2ca8babd
astyle fix
2009-11-17 22:15:25 +02:00
Slava Semushin
42c5025000
Fixed #970 (Tokenizer: Incorrect comparison order simplification)
...
Revert changes from 11cb7b4710
commit
for lib/tokenize.cpp (fixed it by another way).
Teach unsignedint() to expand "unsigned" in casts.
http://sourceforge.net/apps/trac/cppcheck/ticket/970
2009-11-18 00:05:18 +06:00
Daniel Marjamäki
5dd7b054f9
Fixed #915 (false positive: memory leak for struct member (allocated in condition)
2009-11-15 09:28:08 +01:00
Slava Semushin
11cb7b4710
Fixed #961 (Tokenizer: call simplifyCasts() before removing "unsigned" keyword)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/961
2009-11-14 17:01:59 +06:00
Reijo Tomperi
c4244ac9e8
Fix #945 (Array index out of bounds not detected, because of "int const")
...
http://sourceforge.net/apps/trac/cppcheck/ticket/945
2009-11-12 23:49:39 +02:00
Reijo Tomperi
d2db4d3a27
Test case for #903 (segmentation fault of cppcheck)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/903
2009-11-12 21:04:11 +02:00
Daniel Marjamäki
c337b4eb33
Fixed #950 (Bug in cppcheck tokenize.cpp)
2009-11-12 18:53:26 +01:00
Reijo Tomperi
00b62442b6
Fix #894 (Invalid line number in "Invalid number of character")
...
http://sourceforge.net/apps/trac/cppcheck/ticket/894
2009-11-03 22:21:28 +02:00
Reijo Tomperi
7fc72484ec
Fix #881 (Tokenizer: Something seems to be wrong in Tokenizer::simplifyKnownVariables)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/881
2009-11-03 00:07:15 +02:00
Daniel Marjamäki
09859c1019
refactoring the folder structure
2009-10-25 12:49:06 +01:00
Daniel Marjamäki
b67fe861b8
Added testcase for #807 (cppcheck crashes scanning ruby 1.9.1)
2009-10-10 10:13:56 +02:00
Daniel Marjamäki
67f53661a9
Fixed #806 (cppcheck crashes scanning openssl)
2009-10-09 21:11:29 +02:00
Reijo Tomperi
13fbd616da
Moved some test cases from testtokenize into testsimplifytokens and added one TODO case.
2009-10-06 12:40:50 +03:00
Reijo Tomperi
0a7da96cb6
Fix #765 (divsion by zero not detected in std::cout stream)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/765
2009-10-06 09:14:59 +03:00
Daniel Marjamäki
ee1bcb728c
use '<' comparisons instead of '>' ( #610 )
2009-10-04 07:51:12 +02:00
Slava Semushin
9983066f62
Fixed #770 (Tokenizer: Var id not set for static variables in some cases)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/770
2009-10-03 17:05:07 +07:00
Reijo Tomperi
107895e8cc
TODO test cases TestTokenizer::vardec_static added
2009-10-02 17:28:30 +03:00
Daniel Marjamäki
e894e37131
Fixed #679 (False positive: Unused private function produced by exception specification)
2009-10-01 19:45:48 +02:00
Reijo Tomperi
f9871c2d54
Fix #745 (false positive: possible null pointer dereference , while)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/745
2009-09-30 21:42:14 +03:00
Reijo Tomperi
6ed727564c
Fix #759 (Tokenizer: Incorrect var id when two variables with same name)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/759
2009-09-30 14:40:10 +03:00
Reijo Tomperi
ededbfb10e
Fix comment in test case
2009-09-29 17:19:56 +03:00
Reijo Tomperi
2d4404f030
Fix #754 (Tokenizer: transform modifier "signed" to "int")
...
http://sourceforge.net/apps/trac/cppcheck/ticket/754
Also fix int unsigned -> unsigned int
2009-09-28 21:25:05 +03:00
Slava Semushin
b9237db9a3
Fixed #753 (Tokenizer: don't simplify variables inside do {} while loop)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/753
2009-09-28 22:15:31 +07:00
Reijo Tomperi
fdde2182b9
Fix GPL comments in all files. ">." was missing from the end.
2009-09-27 18:08:31 +03:00
Slava Semushin
a919f4541a
Fixed #732 (Tokenizer: Incorrect simplification)
...
Regression since 58a9e05697
commit.
http://sourceforge.net/apps/trac/cppcheck/ticket/732
2009-09-26 17:02:13 +07:00
Reijo Tomperi
62ccda5677
Fix #713 (Tokenizer: Simplify 0L)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/713
Use MathLib to handle other variations of 0.
2009-09-23 22:44:52 +03:00
Reijo Tomperi
ef09f3475c
Fix #713 (Tokenizer: Simplify 0L)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/713
2009-09-23 00:23:11 +03:00
Daniel Marjamäki
faac5bccd6
Fixed #702 (If you see this, there is a bug - varid was 0)
2009-09-22 17:49:13 +02:00
Reijo Tomperi
1c01dd64f3
Fix #703 (Tokenizer: Create links for [])
...
http://sourceforge.net/apps/trac/cppcheck/ticket/703
2009-09-20 23:13:06 +03:00
Slava Semushin
7236230228
Additional fix for better simplifying array declaration.
...
Pointed out by hyd_danmar@ in IRC.
Addressed to #696
2009-09-20 18:28:56 +07:00
Slava Semushin
58a9e05697
Fixed #696 (Tokenizer: Simplify array declaration)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/696
2009-09-20 17:28:15 +07:00
Reijo Tomperi
661e4504cb
astyle fix
2009-09-19 14:21:50 +03:00
Slava Semushin
7a07f9343f
test/testtokenize.cpp: refactoring code.
...
- introduce and use simplifyKnownVariables() function
- don't append leading space to result string with tokens
No functional change.
2009-09-19 13:55:41 +07:00
Reijo Tomperi
2b6955dde5
Fix #670 (Tokenizer: Simplify '\0' into 0)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/670
2009-09-14 21:42:56 +03:00
Slava Semushin
8cafaf2960
Fixed #603 (Tokenizer: Incorrect simplification of < >)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/603
2009-08-23 13:26:16 +07:00
Slava Semushin
acc38a8bbf
Fixed #592 (Tokenizer: improve the tokenization of do .. while)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/592
2009-08-22 17:49:42 +07:00
Daniel Marjamäki
94c49bc34e
Fixed #608 (Tokenizer: simplifyKnownVariables doesn't handle 'while (--i)' correctly)
2009-08-22 10:23:55 +02:00
Slava Semushin
cbeb45566b
Fixed #609 (Tokenizer: don't add {} after do-while();)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/609
2009-08-22 14:49:45 +07:00
Reijo Tomperi
4f8a06ed0d
Initial work for class and member function/variable list in tokenizer.
2009-08-12 23:50:03 +03:00
Slava Semushin
6a7624054e
Fixed ticket #584 (Tokenizer: don't set varId for class declaration)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/584
2009-08-12 01:58:49 +07:00
Slava Semushin
c66103f7bc
Fixed ticket #574 (Tokenizer: not assign varId when variable first afer keyword and has long type)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/574
2009-08-09 15:41:31 +07:00
Slava Semushin
50f7fa5828
Fixed ticket #565 (Tokenizer: simplify variable declaraion like 'int z = x >> 16')
...
http://sourceforge.net/apps/trac/cppcheck/ticket/565
2009-08-08 17:33:07 +07:00
Daniel Marjamäki
e1beb70f80
Fixed #558 (Tokenizer: Bad simplification of 'for(unsigned i = 0; i < 100; ++i)')
2009-08-05 20:15:48 +02:00
Daniel Marjamäki
706ba34a6d
Refactoring the unit testing
2009-08-04 21:32:14 +02:00
Slava Semushin
0445edf6fe
Fixed #542 (Tokenizer: allow numbers in templates parameters)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/542
2009-08-01 23:17:35 +07:00
Slava Semushin
0e2273833e
Fixed ticket #539 (Tokenizer: don't replace constants variables with varid 0)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/539
2009-08-01 20:57:54 +07:00
Slava Semushin
8588012df7
Fixed #521 (Tokenizer: improve static variable detection)
...
Also change cppcheck default behavior to don't show "If you see this,
there is a bug" message for each variable without varId. This feature
was very helpful for developers but may annoying users.
http://sourceforge.net/apps/trac/cppcheck/ticket/521
2009-08-01 00:40:36 +07:00
Daniel Marjamäki
2b26a320f0
astyle formatting
2009-07-31 14:01:50 +02:00
Slava Semushin
5db677bc30
Fixed ticket #523 (Tokenizer: set varId for types with long namespaces)
...
FIXME: skip namespaces by the best way.
http://sourceforge.net/apps/trac/cppcheck/ticket/533
2009-07-31 00:40:41 +07:00
Slava Semushin
681b836389
Fixed ticket #532 (Tokenizer: set varId for types which have comma in template parameter)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/532
2009-07-31 00:25:26 +07:00
Slava Semushin
8b0c1daf98
Fixed ticket #522 (Tokenizer: recognize comma in container with STL type declaration)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/522
2009-07-29 02:46:33 +07:00
Slava Semushin
f50aa1e188
Fixed ticket #520 (Tokenizer: properly set varId for containers with STL types)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/520
2009-07-29 00:54:13 +07:00
Slava Semushin
8643936e0c
Fixed ticket #500 (Tokenizer: simplify the "(p != NULL)" conditions)
...
Also teach simplifyIfNot() to handle variables like Foo::var.
https://sourceforge.net/apps/trac/cppcheck/ticket/500
2009-07-25 18:23:03 +07:00
Slava Semushin
88d7c598e3
test/testtokenize.cpp: use tokenizeAndStringify() function.
...
Instead of self-written code.
No functional change.
2009-07-25 16:41:16 +07:00
Daniel Marjamäki
ffac9281c4
astyle formatting
2009-07-18 20:35:22 +02:00
Slava Semushin
53c120c701
Fixed ticket #479 (varId not assigned to reference to standart container)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/479
2009-07-18 17:41:46 +07:00
Daniel Marjamäki
17008879ac
minor refactoring: header cleanup. use forward declarations instead of includes
2009-07-13 19:11:31 +02:00
Kimmo Varis
6393498966
Astyle fixes.
2009-07-13 16:51:35 +03:00
Daniel Marjamäki
a6ac747830
tokenizer: Don't simplify declarations of static variables
2009-07-06 11:45:14 +02:00
Reijo Tomperi
8b0e481d46
Refactoring: Rename member functions to follow naming guidelines.
2009-07-05 23:16:43 +03:00
Reijo Tomperi
bdf1987cc4
Fix ticket #435 (False positive: Invalid number of character when ({}) is used in code)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/435
2009-06-22 23:54:11 +03:00
Daniel Marjamäki
13b8f10906
refactoring testcases for Tokenizer::simplifyAddBraces
2009-06-20 13:20:51 +02:00
Reijo Tomperi
5f7d88b36c
Fix ticket #416 (False positive: Redundant code)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/416
2009-06-19 19:03:09 +03:00
Reijo Tomperi
c28cd3f82e
astyle fix
2009-06-18 21:05:42 +03:00
Slava Semushin
fafc261611
Fixed ticket #278 (variable id: references are not handled correctly)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/278
2009-06-18 23:30:04 +07:00
Slava Semushin
8c327f82b3
Fixed ticket #346 (adding a "const" token prevents detection of memory leak)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/346
2009-06-15 00:32:34 +07:00
Daniel Marjamäki
af7c63155e
Fixed #387 (Templates: template functions that return a pointer are not simplified correctly)
...
* Fixed so that the tokenizer handle variable declarations better when the variable is assigned the return value of a template function
* Fixed so that the simplifyTemplates detect that a template function is used when its return value is taken
2009-06-14 14:57:47 +02:00
Slava Semushin
cba0d9e130
Fixed ticket #392 (false positive and wrong allocation and deallocation not detected)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/392
2009-06-12 21:14:01 +07:00
Slava Semushin
7bee0cd2df
Fixed ticket #390 (wrong allocation and deallocation not detected)
...
http://sourceforge.net/apps/trac/cppcheck/ticket/390
2009-06-12 20:04:58 +07:00
Daniel Marjamäki
dd473b074a
Fix #153 (Unsigned divide)
...
The "unsigned i" variable declaration wasn't handled well. So I added an "int" token.
2009-06-06 10:40:48 +02:00
Slava Semushin
52a8368b02
Strip redundant std::string usage from tests.
...
Second round: handle empty strings.
Done by command:
git grep -l ASSERT_EQUALS | xargs sed -i 's|ASSERT_EQUALS(std::string(\(".*"\)),|ASSERT_EQUALS(\1,|'
Should be no functional change.
2009-06-05 07:43:55 +07:00
Reijo Tomperi
3428584925
Fix ticket #351 (false positive::resource leak)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/351
2009-06-03 22:02:16 +03:00
Slava Semushin
e5c0383594
Strip redundant std::string usage from tests.
...
Done by command:
git grep -l ASSERT_EQUALS | xargs sed -i 's|ASSERT_EQUALS(std::string(\(".\+"\)),|ASSERT_EQUALS(\1,|'
Should be no functional change.
2009-06-01 02:50:25 +07:00
Daniel Marjamäki
2120edb89b
Variable Id: structs must not have variable id
2009-05-31 18:46:32 +02:00
Reijo Tomperi
3fe1b50e60
Fix ticket #344 (Tokenizer crash in Windows)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/344
2009-05-31 15:55:06 +03:00
Reijo Tomperi
58eda6e978
Fix ticket #325 (Replace developer names in source files with AUTHORS file)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/325
2009-05-30 08:48:12 +03:00
Reijo Tomperi
8876f0ee57
Fix ticket #342 (Simplify "if( (true) == true )")
...
http://apps.sourceforge.net/trac/cppcheck/ticket/342
2009-05-30 00:04:01 +03:00
Reijo Tomperi
a015704591
Changed expected result for test case TestTokenizer::removeParantheses3 to simplify it more
2009-05-28 23:13:15 +03:00
Reijo Tomperi
a3be307c03
Fix bug related to ticket #330 , cppcheck hanged with some files containing "(("
...
http://apps.sourceforge.net/trac/cppcheck/ticket/330
2009-05-28 23:03:36 +03:00
Daniel Marjamäki
a3990648a9
Tokenizer: Simplifying redundant parantheses
...
http://apps.sourceforge.net/trac/cppcheck/ticket/330
2009-05-28 19:37:39 +02:00
Reijo Tomperi
adb1ed4947
Fix ticket #319 (Function names are tagged as variables)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/319
2009-05-27 23:34:08 +03:00
Reijo Tomperi
d6a34dafb2
Added test case TestMemleak::dealloc_and_alloc_in_func
2009-05-27 22:16:54 +03:00
Daniel Marjamäki
ca6d927dfa
Fix ticket 330 (found memory leak when __builtin_expect uses)
2009-05-27 20:49:29 +02:00
Daniel Marjamäki
e89c03da92
Fix ticket 308 (cppcheck msg:: invalid number of ((). Cant process file)
2009-05-27 20:07:18 +02:00
Reijo Tomperi
ea4232fb06
Fix ticket #334 (segmentation fault on boost 1.39.0)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/334
2009-05-26 23:22:00 +03:00
Daniel Marjamäki
b9b542d05b
Fixed ticket #333 (tokenizer: incorrect removal of decrement/increment)
2009-05-25 14:21:58 +02:00
Reijo Tomperi
24d96b188e
Fix ticket #305 (Negative value passed to ASSERT_EQUALS)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/305
Moved also test case from testtokenizer to testtoken.
2009-05-12 21:28:02 +03:00
Reijo Tomperi
e83db8ac7b
Fix ticket #288 (Tokenizer::syntaxError should use error logger instead of std::cout)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/288
2009-05-11 22:52:04 +03:00
Reijo Tomperi
f2a5527e60
Fix #289 (if() is not properly tokenized)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/289
2009-05-09 23:12:14 +03:00
Reijo Tomperi
dd8b738f7f
Initial fix for ticket #283 (segmentation fault when checking xterm sources)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/283
It should print out error message now instead of crashing. Cleanup is needed.
2009-05-07 23:17:29 +03:00
Reijo Tomperi
0f59ef9064
Fix #276 (simplification: Variable value)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/276
2009-05-03 21:57:27 +03:00
Reijo Tomperi
cb209bbd41
Fix #279 (Refactoring: replace and remove Token::aaaa , Token::aaaa0 and Token::aaaa1)
...
http://apps.sourceforge.net/trac/cppcheck/ticket/279
2009-05-03 21:10:59 +03:00