Commit Graph

1023 Commits

Author SHA1 Message Date
Daniel Marjamäki 535fe17ffd Templates: Scaled up the handling of default values for template parameters (#638) 2009-09-06 08:22:45 +02:00
Reijo Tomperi 75a65a02a8 Fix another issue related to #647 (Crash during tokenizing (wrong) K&R function declaration)
http://sourceforge.net/apps/trac/cppcheck/ticket/647
2009-09-05 23:41:39 +03:00
Reijo Tomperi a3d9863725 Fix #647 (Crash during tokenizing (wrong) K&R function declaration)
http://sourceforge.net/apps/trac/cppcheck/ticket/647
Thanks to undingen for providing a patch
2009-09-05 22:21:25 +03:00
Reijo Tomperi 7af4ac4282 New command line argument added --template
Fix ticket #462 (Allow using template to customize output format)
http://sourceforge.net/apps/trac/cppcheck/ticket/462
2009-09-05 22:01:49 +03:00
Slava Semushin 195cc9aae9 Fixed #585 (Preprocessor: Don't check the same configuration twice)
http://sourceforge.net/apps/trac/cppcheck/ticket/585
2009-09-06 00:01:57 +07:00
Slava Semushin a9273c9d39 Fixed #629 (Tokenizer: expand nested strcat() calls)
http://sourceforge.net/apps/trac/cppcheck/ticket/629
2009-09-05 23:46:27 +07:00
Aleksey Palazhchenko d9d2f53df6 Added top-level 'check' target.
Also refactored all. pro files by the way. :)
2009-09-04 22:59:25 +04:00
Reijo Tomperi 23c07dd2b8 Merge branch 'master' of git@github.com:danmar/cppcheck 2009-09-03 23:36:42 +03:00
Reijo Tomperi 7408674017 Fix #601 (Poor var initialization assumption when can't find function definition)
http://sourceforge.net/apps/trac/cppcheck/ticket/601
Fix #641 ((style) Member variable not initialized in the constructor: False Positive)
http://sourceforge.net/apps/trac/cppcheck/ticket/641

This fix will also cause us not to detect several potential issues, but as there are so many
false positives, any unknown function call should stop the error for now. New
ticket is created to handle regression caused by this:
http://sourceforge.net/apps/trac/cppcheck/ticket/643
2009-09-03 23:28:00 +03:00
Daniel Marjamäki 7a9e4a7bd4 templates: remove typename tokens 2009-09-03 22:19:44 +02:00
Reijo Tomperi a4190bc590 Fix ticket #642 (txx (template implementation files) not recognized/checked.)
http://sourceforge.net/apps/trac/cppcheck/ticket/642
2009-09-03 23:04:38 +03:00
Daniel Marjamäki 2719724a97 templates: Quick fix for the problem with default value for a template argument 2009-09-03 21:46:07 +02:00
Reijo Tomperi 686ff425f9 Fix ticket #637 (False positive, Using 'memset' on struct that contains a 'std::string')
http://sourceforge.net/apps/trac/cppcheck/ticket/637
2009-09-02 23:51:07 +03:00
Reijo Tomperi 8ab26e85cf Don't warn about division by zero if zero if floating point number.
Fix bug from mathlib isInt() and add test case from which few are false positives
2009-09-01 22:06:46 +03:00
Daniel Marjamäki 93659bbe08 memory leaks: fixed a todo testcase to find more leaks 2009-09-01 20:12:53 +02:00
Daniel Marjamäki 9a47b7110e memory leaks: fixed todo testcases to find more memory leaks 2009-09-01 20:02:28 +02:00
Slava Semushin ca053bf8f9 CheckMemoryLeakInFunction: print simplified tokens only with --debug and --verbose.
Suggested by aggro80@ and approved by hyd_danmar@ in IRC.
2009-09-02 00:54:40 +07:00
Slava Semushin 92f436b474 Tokenizer::syntaxError(): throw exception when debug enabled.
This allows to stop test suite when first syntax error found.
2009-09-02 00:38:49 +07:00
Slava Semushin 953183d905 Print error messages to stderr (instead of stdout). 2009-09-02 00:38:43 +07:00
Daniel Marjamäki 7ba244cf45 Memory leaks: fixed a todo testcase 2009-09-01 19:33:17 +02:00
Slava Semushin d8f2ec934b Tokenizer::syntaxError: show details about unlogged syntax error. 2009-09-01 23:58:36 +07:00
Slava Semushin eebe7457c9 Fixed #631 (False positive matching iterator which is dereferenced)
http://sourceforge.net/apps/trac/cppcheck/ticket/631
2009-09-01 23:49:17 +07:00
Reijo Tomperi 0d468d97c7 Fix #630 (Division by zero check only looks at first character of divisor)
http://sourceforge.net/apps/trac/cppcheck/ticket/630
Thanks to liam_routt for finding this and providing fix for it.
2009-09-01 17:00:26 +03:00
Daniel Marjamäki 03d7573208 Borland C++: Don't warn about uninitialized variables that are declared in the __published section. These are auto-initialized 2009-08-31 19:40:49 +02:00
Daniel Marjamäki 960fb861da Refactoring: Refactoring of the unit testing for the CheckMemoryLeakInFunction 2009-08-30 21:11:15 +02:00
Reijo Tomperi 6fb44e733b Fix ticket #612 (Division by zero not detected when zero has type suffix)
http://sourceforge.net/apps/trac/cppcheck/ticket/612
2009-08-30 22:02:09 +03:00
Daniel Marjamäki 9ede0e26ab Merge branch 'master' into aleksi/master 2009-08-30 16:03:40 +02:00
Slava Semushin c50f7787f9 Fixed #569 (Buffer overrun not detected when strcat() called few times)
http://sourceforge.net/apps/trac/cppcheck/ticket/569
2009-08-30 18:44:23 +07:00
Aleksey Palazhchenko 95356dfecd Fixes in src.pro
1) Binary shouldn't be in bundle (Mac OS X).
2) Binary doesn't use Qt at all.
2009-08-30 15:26:10 +04:00
Slava Semushin 1a982a2a19 CheckBufferOverrun::checkScope(): use Token::getStrLength().
No functional change.
2009-08-30 18:21:42 +07:00
Slava Semushin 843ede94f3 Token::getStrLength(): introduce new static method.
No functional change.
2009-08-30 18:07:10 +07:00
Slava Semushin 9b78c6dd32 Preprocessor::getcfgs(): use std::list::unique() for removing duplicates.
No functional change.
2009-08-30 15:47:24 +07:00
Daniel Marjamäki f9b84805d9 Refactoring: Use the Token::link 2009-08-30 10:27:26 +02:00
Reijo Tomperi e1cdbf3c5a Fix ticket #611 (Preprocessor: the configurations "A;B" and "B;A" are the same)
http://sourceforge.net/apps/trac/cppcheck/ticket/611
2009-08-30 00:00:54 +03:00
Reijo Tomperi fc343b3e9e astyle fix 2009-08-29 23:33:12 +03:00
Slava Semushin d3118d85c0 Tokenizer::setVarId(): simplify code a bit.
No functional change.
2009-08-30 03:25:14 +07:00
Slava Semushin 6bb6cbadc2 Tokenizer::setVarId(): use Token::link() instead of loop.
No functional change.
2009-08-30 03:17:01 +07:00
Slava Semushin 00113eea92 Tokenizer::setVarId(): simplify condition.
No functional change.
2009-08-30 03:12:08 +07:00
Slava Semushin fd94bb0cea Tokenizer: don't call simplifyCalculations() twice.
No functional change.
2009-08-30 02:42:28 +07:00
Slava Semushin 18fd2528f8 Tokenizer::simplifyFunctionParameters(): change return type to void.
No functional change.
2009-08-30 02:37:15 +07:00
Slava Semushin 19e327607f Tokenizer::simplifyConditionOperator(): change return type to void.
No functional change.
2009-08-30 02:33:21 +07:00
Slava Semushin 33ee1b8d98 Tokenizer::elseif(): change return type to void.
No functional change.
2009-08-30 02:33:14 +07:00
Slava Semushin 8efacf5dc3 Tokenizer::simplifyDoWhileAddBraces(): change return type to void.
No functional change.
2009-08-30 02:33:03 +07:00
Slava Semushin a1f40f3c17 Tokenizer::simplifyIfAddBraces(): change return type to void.
No functional change.
2009-08-30 02:32:45 +07:00
Slava Semushin ea45d985c7 Tokenizer::simplifyComma(): change return type to void.
No functional change.
2009-08-30 02:23:39 +07:00
Slava Semushin 80a305a2ce Tokenizer::simplifyIfNotNull(): change return type to void.
No functional change.
2009-08-30 02:21:06 +07:00
Slava Semushin 3f905da9c6 Tokenizer::simplifyIfNot(): change return type to void.
No functional change.
2009-08-30 02:19:45 +07:00
Slava Semushin b435764083 Tokenizer::simplifyIfAssign(): change return type to void.
No functional change.
2009-08-30 02:17:17 +07:00
Slava Semushin 030a0c19df Tokenizer::simplifyVarDecl(): change return type to void.
No functional change.
2009-08-30 02:07:09 +07:00
Slava Semushin 1cb1709d7c Tokenizer::simplifyCasts(): change return type to void.
No functional change.
2009-08-30 02:06:14 +07:00
Slava Semushin 6f93182580 Tokenizer::simplifyLogicalOperators(): change return type to void.
No functional change.
2009-08-30 02:03:37 +07:00
Daniel Marjamäki 9d7defad22 Fixed #615 (Memleak was detected in 1.32 but not in 1.33 and later) 2009-08-29 17:33:57 +02:00
Daniel Marjamäki 1dd2ec4757 Fixed #414 (memory leak in if-else construct not detected) 2009-08-29 16:55:43 +02:00
Daniel Marjamäki 270d2b2d4f memory leaks: improved the simplification of 'if* ;' 2009-08-29 16:27:16 +02:00
Daniel Marjamäki 8f1f89ae2b memory leaks: fixed todo test case. reduce exit better 2009-08-29 16:03:23 +02:00
Slava Semushin 085187b445 Tokenizer: enhance simplifyNot() and rename to simplifyLogicalOperators().
Don't replace "and" everything becuse it may be used as variable name.

Better fix for #620
Corrections for commit eb05cf904d
2009-08-29 20:42:14 +07:00
Slava Semushin 0582572867 Tokenizer(simplifyNot): replace "if" by "else if" and added braces.
No functional change.
2009-08-29 20:32:48 +07:00
Daniel Marjamäki b5c6d7ba49 memory leaks: fixed bug. return|else are not part of a variable declaration 2009-08-29 15:20:37 +02:00
Slava Semushin eb05cf904d Fixed #620 (Tokenizer: replace "and" by "&&")
http://sourceforge.net/apps/trac/cppcheck/ticket/620
2009-08-29 19:26:01 +07:00
Slava Semushin 840bbcfcbb Tokenizer(simplifyIfAssign): fixed to link() just inserted tokens.
Fixed segfault on samba sources.
2009-08-29 18:10:43 +07:00
Slava Semushin d6017756f4 Tokenizer(simplifyComma): join two if bodies to one.
No functional change.
2009-08-29 16:48:44 +07:00
Slava Semushin ae413a1ef0 Fixed #618 (Tokenizer: Wrong handling of enum)
http://sourceforge.net/apps/trac/cppcheck/ticket/618
2009-08-29 16:42:42 +07:00
Slava Semushin 78d44e67ef CheckMemoryLeakInFunction(getcode): don't call Token::Match() if varid equals to zero. 2009-08-29 16:27:56 +07:00
Slava Semushin fe1101771a Tokenizer: call createLinks() only once.
Fixed simplifyIfAssign() and simplifyIfNot() to link() just inseted
tokens.

No functional change.
2009-08-29 16:10:04 +07:00
Daniel Marjamäki 6347d0e976 memory leaks: better handling of open/close 2009-08-29 09:18:21 +02:00
Daniel Marjamäki 88d0bd3908 astyle 2009-08-29 08:20:18 +02:00
Daniel Marjamäki ee5b2a43c7 Fixed #627 (False positive with --all, Resource leak with open()) 2009-08-29 07:43:44 +02:00
Daniel Marjamäki de9e62e90a Memory leaks: handling asprintf better 2009-08-29 07:26:32 +02:00
Daniel Marjamäki 406fdd3219 Memory leaks: Fixed two todo testcases (getcode handling of asprintf) 2009-08-29 07:02:36 +02:00
Daniel Marjamäki ab047c680c memory leaks: fixed a todo testcase 2009-08-29 06:42:24 +02:00
Daniel Marjamäki 74fd052fc0 Memory leaks: Testing that asprintf is handled correctly 2009-08-28 23:26:40 +02:00
Reijo Tomperi 0f0d7e92ee Fixed bug in Token::deleteThis and optimized createLinks() calls. 2009-08-28 23:31:11 +03:00
Reijo Tomperi bf4ac5521d astyle fix 2009-08-28 23:29:08 +03:00
danmar 4f6b79b761 Fixed #625 (cppcheck dumps core on valid code) 2009-08-28 12:57:29 +02:00
danmar bb2bda0be4 Fixed #622 (Tokenizer: Calculations are wrong) 2009-08-28 12:13:46 +02:00
danmar 465c450247 Borland C++: Fixed problem in FileLister 2009-08-28 11:00:42 +02:00
danmar 3b2744e04a borland c++: fixed compiler errors 2009-08-28 10:22:40 +02:00
Daniel Marjamäki 5d2c409e46 Fixed #623 (False positive: possible null pointer dereference when using the ?: operator) 2009-08-28 08:48:37 +02:00
Slava Semushin dd64637ff1 Fixed #616 (Tokenizer: simplifyTemplates() should link() all inserted brackets)
This also fixed #619.

http://sourceforge.net/apps/trac/cppcheck/ticket/616
http://sourceforge.net/apps/trac/cppcheck/ticket/619
2009-08-27 23:45:59 +07:00
Slava Semushin 9e32a0a595 Revert "Fixed #616 (cppcheck crashes with Eigen/src/Cholesky/CholeskyInstantiations.cpp)"
This reverts commit 89f9645174.

This change not fully and properly fixes a problem but just work
arround it. The root of problem is because
Tokenizer::simplifyTemplates() inserts new tokens with brackets which
not link()-ed.
2009-08-27 23:40:58 +07:00
Reijo Tomperi 929dbe92e4 Fix the last test case from ticket #613 (array members variables are not checked in constructor)
http://sourceforge.net/apps/trac/cppcheck/ticket/613
2009-08-26 23:33:23 +03:00
Daniel Marjamäki ff9ed1d7aa Preprocessor: better handling of pragma asm and pragma endasm 2009-08-26 21:54:43 +02:00
Slava Semushin 7c86a10a9d Fixed #617 (False positive "buffer overrun" when sprintf() doesn't have optional parameters)
http://sourceforge.net/apps/trac/cppcheck/ticket/617
2009-08-27 00:21:32 +07:00
Daniel Marjamäki f94aab35e7 Fixed #498 (Tokenizer: simplify 'goto') 2009-08-26 18:46:56 +02:00
Slava Semushin 89f9645174 Fixed #616 (cppcheck crashes with Eigen/src/Cholesky/CholeskyInstantiations.cpp)
http://sourceforge.net/apps/trac/cppcheck/ticket/616
2009-08-26 23:44:01 +07:00
Slava Semushin 8dcb846627 Fixed #614 (If you see this, there is a bug ###### Token::Match() - varid was 0)
http://sourceforge.net/apps/trac/cppcheck/ticket/614
2009-08-26 02:44:19 +07:00
Slava Semushin 311fb1a1f8 src/checkmemoryleak.{h,cpp}: minor improvements.
Corrections for commit 0d6b6e840d

No functional change.
2009-08-26 02:32:10 +07:00
Slava Semushin ff3d1db480 Replace "const unsigned int" to "unsigned int" in methods parameters.
No functional change.
2009-08-26 02:26:12 +07:00
Slava Semushin bb15efb928 src/checkclass.cpp: propagate Token::strAt().
No functional change.
2009-08-26 02:04:48 +07:00
Slava Semushin 9a2a12c333 Tokenizer(simplifyGoto): create links for inserted braces. 2009-08-26 01:58:50 +07:00
Daniel Marjamäki 9569f758f8 fixed segmentation fault 2009-08-25 17:54:04 +02:00
Daniel Marjamäki c25e1963b1 Fixed #498 (Tokenizer: simplify 'goto') 2009-08-24 23:10:12 +02:00
Reijo Tomperi c581753040 Fix ticket #613 (array members variables are not checked in constructor)
http://sourceforge.net/apps/trac/cppcheck/ticket/613
Patch from micres
2009-08-23 22:54:41 +03:00
Daniel Marjamäki 522f4c18c8 astyle formatting 2009-08-23 17:17:57 +02:00
Daniel Marjamäki 9da2ecf4f4 Refactoring the unit testing. Wrote special tests for CheckMemoryLeakInFunction::findleak 2009-08-23 15:48:25 +02:00
Daniel Marjamäki 99938353b4 Merge commit 'd0k/master' 2009-08-23 12:45:49 +02: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 e6120a5725 Fixed #581 (Wrong usage of div-function)
http://sourceforge.net/apps/trac/cppcheck/ticket/581
2009-08-23 10:37:09 +07:00
Slava Semushin 703fd45f78 Tokenize: minimize createLinks() calls.
No functional change.
2009-08-23 10:36:34 +07:00
Benjamin Kramer 18696679e3 Token: inline some functions 2009-08-22 22:36:12 +02:00