Commit Graph

2827 Commits

Author SHA1 Message Date
Daniel Marjamäki e15a16eb15 Tokenizer: Remove redundant assignments and variables 2010-01-31 09:33:57 +01:00
Daniel Marjamäki e1efad0c27 Tokenizer: remove the keyword 'inline' 2010-01-31 08:11:29 +01:00
Robert Reif d17d199415 Tokenizer: fix for multiple array definitions for a single typedef 2010-01-31 07:16:19 +01:00
Robert Reif 630d9ba552 Fixed #1326 (remove simplified enum definitions) 2010-01-31 07:13:09 +01:00
Robert Reif 7cbdb9f8a1 Fixed #1331 (simplify typedef of complex arrays) 2010-01-30 19:41:22 +01:00
Daniel Marjamäki 8716c771a4 Tokenizer: improved the simplifyInitVar 2010-01-30 14:25:11 +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
Robert Reif 882e2225e0 Fixed 1329 (simplify typedef of function pointer returning template) 2010-01-30 08:00:11 +01:00
Daniel Marjamäki f9d5fb3191 Fixed #1327 (False positive: Redundant code: Found a statement that begins with numeric constant) 2010-01-29 22:28:49 +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
Robert Reif 19bb2940cc Fixed #1325 (Segmentation fault in simplifyTypedef due to bad preprocessing) 2010-01-29 16:00:48 +01:00
Robert Reif fc54ed1eef Fixed #1326 (remove simplified enum definitions) 2010-01-29 15:57:26 +01:00
Robert Reif 45b6b9e5a1 Fixed #1316 (### Internal error in Cppcheck. Please report it.) 2010-01-27 19:03:24 +01:00
Robert Reif 8be8c266ac Fixed #1313 (unnamed enums not simplified properly) 2010-01-25 07:45:16 +01:00
Robert Reif 989e8393e4 Fixed #1307 (Internal error with typedef in parameter list) 2010-01-24 22:40:35 +01:00
Daniel Marjamäki 65881b9346 Fixed #1238 (False Negative : memory leak with template class) 2010-01-24 20:04:09 +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 24052c16b4 Fix some style errors found from our own code. 2010-01-23 23:44:08 +02: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 8a9eba980b Function pointers: re-enabled the simplifyFunctionPointers 2010-01-23 07:43:12 +01:00
Robert Reif 13ca2510cc Fixed #1298 ((error) ### Internal error in Cppcheck. Please report it. (typedef in fun proto)) 2010-01-22 20:26:07 +01:00
Daniel Marjamäki 1552c0f7f2 Fixed #1276 (False Uninitialized variable when using goto) 2010-01-22 20:20:43 +01:00
Robert Reif 9f853cb164 Fixed #1297 (typedef causes internal error in vlc/modules/access/imem.c) 2010-01-22 17:27:40 +01:00
Daniel Marjamäki d4b13eee9f Fixed #1290 (1.40: Internal error) 2010-01-21 20:05:32 +01:00
Robert Reif 9f0b9551cf This patch simplifies the function pointer return type code and allows more complex return types. 2010-01-21 18:01:09 +01:00
Robert Reif e9e64033e7 Improved typedef simplification of function pointers 2010-01-21 07:51:08 +01:00
Daniel Marjamäki 3447030564 Merge branch 'master' of git@github.com:danmar/cppcheck 2010-01-20 21:19:32 +01:00
Daniel Marjamäki 96359b14ff Simplify function pointers 2010-01-20 21:19:06 +01:00
Robert Reif e163f878ab Handle/simplify function pointer typedefs 2010-01-20 21:16:40 +01:00
Reijo Tomperi b83d257852 Fix #1296 (false positive: index out of bounds)
http://sourceforge.net/apps/trac/cppcheck/ticket/1296
2010-01-20 21:26:54 +02:00
Robert Reif cd31cd9298 Fixed #1251 (tokenize typedef of reference) 2010-01-18 19:06:50 +01:00
Robert Reif 70dbb8ba17 Fixed #1275 (Cppcheck hangs when analysing the code 'typedef struct { } A, *B, **C;') 2010-01-17 08:16:17 +01:00
Daniel Marjamäki fbefb8df34 Fixed #1272 (links in typedef not handled correctly) 2010-01-16 19:42:37 +01:00
Daniel Marjamäki 0a8ca1f160 Fixed #1271 (SIGSEGV on malformed source (macro stub + fundef)) 2010-01-16 13:56:57 +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 0212225859 Tokenizer: fixed typedef issues 2010-01-13 07:59:47 +01:00
Daniel Marjamäki 2358c51694 Tokenizer: some cleanup of std:: 2010-01-12 21:25:31 +01:00
Robert Reif 5e8e4fd3e9 Fixed #1252 (Internal error in Cppcheck while parsing struct) 2010-01-12 17:38:36 +01:00
Robert Reif 7b6bf80057 Fixed #1250 (tokenize typedef of union) 2010-01-11 22:58:57 +01:00
Daniel Marjamäki c666a9662b BufferOverrun: negative index is out of bounds 2010-01-11 21:18:07 +01:00
Robert Reif 94d5e32aa1 Fixed #1248 (tokenize typedef of array) 2010-01-11 17:09:04 +01:00
Robert Reif 19ba151531 Fixed #1244 (tokenize typedef of unnamed struct) 2010-01-10 08:49:02 +01:00
Daniel Marjamäki 6ec5b797ab Borland C++: Fixed compiler error 2010-01-09 10:24:35 +01:00
Robert Reif b30b07beee Fixed #1232 (segmentation fault of cppcheck when scanning templates) 2010-01-07 18:09:35 +01:00
Daniel Marjamäki b366dba682 After suggestion from Jim Vollner, remove dead pointers from the used list 2010-01-06 21:29:39 +01:00
Daniel Marjamäki 94b0cbbcff uncomment validation of Tokenizer::_tokensBack 2010-01-06 21:18:42 +01:00
Daniel Marjamäki 57d1da3910 Ticket #1228 : Handle tokensBack in the Token class. When adding&removing tokens the Token class can make sure that this pointer is updated accordingly. It is very important that the tokensBack has the same scope as the token list, otherwise there will be a dead pointer problem. 2010-01-06 20:19:27 +01:00
Reijo Tomperi ff0573998a Added more validating code to tokenizer. Currently commented out. 2010-01-06 01:32:05 +02:00
Robert Reif 13f627d0d5 Fixed #1215 (are enums processed properly?) 2010-01-04 17:22:06 +01: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
Slava Semushin b816968f28 Fixed #1197 (Segmentation fault when we define function which was already defined by preprocessor)
http://sourceforge.net/apps/trac/cppcheck/ticket/1197
2010-01-02 03:25:37 +06:00
Daniel Marjamäki ddfd0b948e Fixed #1178 (1.39: Internal error) 2010-01-01 21:06:30 +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
Robert Reif f8f0a31e41 Fixed #1167 (### Internal error in Cppcheck. Please report it.) 2009-12-30 20:56:16 +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 71b328d703 Robert Reif: Fixed #1163 (post increment test broken for complex template types) 2009-12-29 19:24:48 +01:00
Daniel Marjamäki 160f795710 Fixed #1165 (Tokenizer: wrong simplification of 'do { .. } while (0)' if the body contains continue or break) 2009-12-29 12:15:39 +01:00
Daniel Marjamäki 84ce6ba75a Robert Reif: Fixed #1162 (add support to tokenize typedefs with templates) 2009-12-29 07:28:00 +01:00
Daniel Marjamäki 28f2bf2150 Robert Reif: Fixed #1161 (add tokenize support for typedefs with enum definitions) 2009-12-28 17:57:52 +01:00
Daniel Marjamäki 6a31fe6403 Fixed #1159 (Valgrind gives error in Tokenizer::simplifyWhile0) 2009-12-28 16:32:34 +01:00
Daniel Marjamäki 197bcf17ba Tokenizer: Simplify 'while (0)' better 2009-12-28 08:37:34 +01:00
Daniel Marjamäki c7cede1d76 Fixed #972 (New check: return pointer of stack memory) 2009-12-27 13:08:41 +01:00
Daniel Marjamäki 44a629ec74 Fixed #1141 (Tokenizer: Wrong simplification of calculations) 2009-12-25 14:47:15 +01:00
Daniel Marjamäki 4dac46b2d7 Fixed #1127 (Segfault with template) 2009-12-22 20:10:08 +01:00
Daniel Marjamäki 5b87a51aa5 Robert Reif: Fixed #1108 (Only trivial typedefs are tokenized properly) 2009-12-22 19:10:33 +01:00
Daniel Marjamäki 191a913ff9 Fixed #1117 (segmentation fault of cppcheck) 2009-12-20 12:45:34 +01:00
Daniel Marjamäki 1680d1fb42 Fixed #1086 (segmentation fault of cppcheck '#if define(A)+define(B)+define(C)!=1') 2009-12-15 20:18:32 +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
Daniel Marjamäki e52fb36c5c Fixed #1060 (Preprocessor: wrong define handling) 2009-12-11 19:28:37 +01:00
Daniel Marjamäki e2473314b5 Fixed #1024 (Preprocessor: doesn't expand macro in macro) 2009-12-09 19:14:07 +01:00
Reijo Tomperi d08d1deab1 Apply patch from #1066 (Speed up cppcheck)
http://sourceforge.net/apps/trac/cppcheck/ticket/1066
2009-12-08 23:12:49 +02:00
Reijo Tomperi bd024b7a2d Fix #1065 (Internal error - incrementing single char in char array)
http://sourceforge.net/apps/trac/cppcheck/ticket/1065
2009-12-07 23:42:30 +02: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 a30a64d280 suppress 'internal error' message about failed template instantiation in release mode 2009-12-06 11:44:53 +01:00
Daniel Marjamäki cd4e355f17 Fixed #1052 (Internal error for 'int vals[] = { 0x13, 1?0x01:0x00 };') 2009-12-06 10:58:27 +01:00
Daniel Marjamäki a5e43b4be5 Fixed #1051 (segmentation fault when there is syntax error) 2009-12-06 09:02:13 +01:00
Daniel Marjamäki 75f6e20e61 Fixed #1050 (Internal error: In tokenizer for: 'do { sizeof 1; } while (0);') 2009-12-06 08:46:59 +01:00
Daniel Marjamäki e66156ab5c Fixed #1049 (Tokenizer: internal error for 'std::list<std::string[8]> w1, w2;') 2009-12-05 22:19:54 +01: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 96268b4caf Fixed #1030 (wrong line number with goto) 2009-12-02 19:47:35 +01:00
Daniel Marjamäki 153a13272c ericsesterhenn: Fix #1028 (False positive resource leak) 2009-11-30 16:45:19 +01:00
Daniel Marjamäki e6b5fe99f6 Fixed #1027 (Internal error: sizeof a++) 2009-11-29 17:25:35 +01:00
Daniel Marjamäki f4943b8b9c changed error message when there an internal error in Cppcheck is found 2009-11-29 16:13:14 +01:00
Daniel Marjamäki e7d7507c65 Fixed #1020 (lib/tokenize.cpp:4615: bool Tokenizer::validate() const: Assertion 0 failed) 2009-11-29 12:14:42 +01:00
Reijo Tomperi 57aac9270a validator bugs are now printed using the errorlogger 2009-11-28 23:08:43 +02:00
Daniel Marjamäki b0470d649a mode change from 755 to 644 2009-11-28 12:56:34 +01:00
Daniel Marjamäki 5ab8967632 Borland C++: Fixed compiler error 2009-11-28 08:55:51 +01:00
Reijo Tomperi 0bdf63d864 Token debug function printOut() can now print out filename instead of index 2009-11-28 00:04:04 +02:00
Reijo Tomperi 2c51542cf1 Fix #1018 (strcat(strcat()) causes assertion in Tokenizer::validate)
Test case provided by povaddict
http://sourceforge.net/apps/trac/cppcheck/ticket/1018
2009-11-27 23:21:13 +02:00
Daniel Marjamäki c94ecfe1a3 Fixed #1015 (SIGABRT: Tokenizer::validate for openttd/src/ai/ai_config.cpp) 2009-11-27 17:32:53 +01:00
Daniel Marjamäki 128b2b8c59 Fixed #989 (CppCheck crashes on Win XP when scanning large directories/subdirectories) 2009-11-23 18:59:50 +01:00
Daniel Marjamäki 9b397afeca Temporary fix for #994 (cppcheck cannot check my sources with segfaulting) 2009-11-22 13:38:45 +01: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 38a6c41730 Fixed #988 (Tokenizer::simplifyDoWhileAddBraces(): don't add braces after "do" when it not a loop)
FIXME: test cases needed.

http://sourceforge.net/apps/trac/cppcheck/ticket/988
2009-11-21 20:46:17 +06:00
Daniel Marjamäki 531d0fa685 Fixed #965 (Division by zero false positive with nested macros) 2009-11-20 20:42:28 +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
Slava Semushin 5369965e55 Fixed #983 (Tokenizer::simplifyTypedef() incorrectly substitute type inside namespace)
http://sourceforge.net/apps/trac/cppcheck/ticket/983
2009-11-20 00:02:16 +06: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
Slava Semushin 2ec5438186 Fixed #954 (Tokenizer: correctly simplify sizeof of class members)
http://sourceforge.net/apps/trac/cppcheck/ticket/954
2009-11-14 01:07:44 +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 3d5760b149 Fix #947 (Errors not detected when size_t is used instead of int)
http://sourceforge.net/apps/trac/cppcheck/ticket/947
2009-11-12 23:31:13 +02:00
Daniel Marjamäki b2cec721c0 Fixed #951 (Preincremented struct member confused with numeric constant) 2009-11-12 22:16:24 +01:00
Slava Semushin b6cda12251 Fixed #903 (segmentation fault of cppcheck)
http://sourceforge.net/apps/trac/cppcheck/ticket/903
2009-11-13 00:41:35 +06:00
Daniel Marjamäki c337b4eb33 Fixed #950 (Bug in cppcheck tokenize.cpp) 2009-11-12 18:53:26 +01:00
Slava Semushin 2fef287869 Fixed #935 (Tokenizer: link() problem)
http://sourceforge.net/apps/trac/cppcheck/ticket/935
2009-11-12 00:16:05 +06:00
Reijo Tomperi 4372b3aa92 Use validate after tokenize and simplifyTokenlist calls. Disabled until known problems fixed. 2009-11-10 23:10:56 +02:00
Daniel Marjamäki 0c8d327809 Fixed #907 (Tokenizer: known result of strlen) 2009-11-07 08:25:39 +01:00
Daniel Marjamäki 58c54d2ed4 Fixed #898 (Tokenizer: remove unneeded const after *) 2009-11-05 21:30:05 +01:00
Reijo Tomperi de4ca924b5 Fixed #896 (False positive with --all when return value of open() is positive in a loop)
http://sourceforge.net/apps/trac/cppcheck/ticket/896
2009-11-05 00:58:15 +02: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
Reijo Tomperi 618eed3d59 Fixed segmentation fault.
Had to change one test case to TODO for now.
2009-11-01 21:49:43 +02:00
Daniel Marjamäki 319cdc2b43 Fixed #880 (Tokenizer: The Tokenizer::simplifyTemplates doesn't handle recursive templates) 2009-11-01 19:03:52 +01:00
Daniel Marjamäki fec7acdc27 Templates: Better handling of recursive templates 2009-11-01 15:56:00 +01:00
Daniel Marjamäki a337708ae5 Fixed #430 (Tokenizer: handle templates with partial specialisation) 2009-10-31 12:34:52 +01:00
Reijo Tomperi 4a61bd0432 Fix #870 (The CheckClass::getVarList method detects 'const' as a variable name.)
http://sourceforge.net/apps/trac/cppcheck/ticket/870
2009-10-29 21:54:51 +02:00
Daniel Marjamäki 09859c1019 refactoring the folder structure 2009-10-25 12:49:06 +01:00