Commit Graph

1176 Commits

Author SHA1 Message Date
Reijo Tomperi 014ad937cf Optimize speed and fix one false positive with stl checks. 2009-10-07 23:38:21 +03:00
Daniel Marjamäki 13e43b8710 Ashim Kapoor: updated the counter (#694) 2009-10-07 18:21:44 +02:00
Reijo Tomperi fcd269dbf7 Refactoring: Moved some code into a new function.
Renamed count->countSprintfLength.
Added code to collect sprintf parameters.
Added a few TODO test cases.
2009-10-07 15:37:20 +03:00
Reijo Tomperi 8fc21dda27 Fix #801 (Tokenizer: Simplify sizeof for function parameters)
http://sourceforge.net/apps/trac/cppcheck/ticket/801
2009-10-07 12:05:44 +03:00
Reijo Tomperi 06dd66bff4 Fix #487 (Tokenizer: Simplify sizeof for string array and string pointer)
http://sourceforge.net/apps/trac/cppcheck/ticket/487
2009-10-07 11:08:53 +03:00
Reijo Tomperi 8472e58413 Refactored sizeof simplification and fixed one TODO assert. 2009-10-07 10:54:34 +03:00
Reijo Tomperi d9ae2c171e Detect referenced by value errors for std::map also. 2009-10-07 00:04:54 +03:00
Reijo Tomperi ab762b1a00 Fix #388 (resource leak not detected, allocation through function call)
http://sourceforge.net/apps/trac/cppcheck/ticket/388
2009-10-06 23:14:32 +03:00
Reijo Tomperi 2e69d50458 Fix #796 (segmentation fault while scanning)
http://sourceforge.net/apps/trac/cppcheck/ticket/796
2009-10-06 21:03:15 +03:00
Daniel Marjamäki 36fb24b1a5 memory leaks: don't write errors for static member variables 2009-10-06 18:25:00 +02:00
Daniel Marjamäki c3d56c1d13 Fix #797 (false positive: variable scope when using function call) 2009-10-06 17:45:28 +02:00
Reijo Tomperi d598bed1c6 Fix #575 (Array index out of bounds check: get address of one-past-the-end array is legal)
http://sourceforge.net/apps/trac/cppcheck/ticket/575
2009-10-06 14:50:27 +03:00
Reijo Tomperi c55140d4cd Fix #580 (double free not found)
http://sourceforge.net/apps/trac/cppcheck/ticket/580
2009-10-06 12:44:53 +03:00
Reijo Tomperi 272f0d3be5 Fix #795 (Preprocessor: Incorrect handling of #if (A) || (B))
http://sourceforge.net/apps/trac/cppcheck/ticket/795
2009-10-06 11:47:36 +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
Reijo Tomperi c0a46907c0 Removed variable that wasn't used. 2009-10-05 23:50:55 +03:00
Reijo Tomperi 89eb7360e0 Replace substr() with compare() to speed up preprocessing.
See #762 (version 1.37 of cppcheck runs extremely slowly on windows)
http://sourceforge.net/apps/trac/cppcheck/ticket/762
2009-10-05 23:41:13 +03:00
Reijo Tomperi 1eba4b374f Fix #794 (Floating point exception on CheckBufferOverrun)
http://sourceforge.net/apps/trac/cppcheck/ticket/794
2009-10-05 23:19:44 +03:00
Reijo Tomperi edb28d2856 Fix #365 (Improve simplifyQuestionMark() in tokenize.cpp)
http://sourceforge.net/apps/trac/cppcheck/ticket/365
2009-10-05 17:34:38 +03:00
Reijo Tomperi 50d9bc78ef Refactoring: Remove findClosing(). It is replaced by Token::link(). 2009-10-05 15:06:50 +03:00
Reijo Tomperi 6901bcae79 Fix #771 (False positive. Null pointer dereference in a switch case)
http://sourceforge.net/apps/trac/cppcheck/ticket/771
2009-10-05 14:46:38 +03:00
Reijo Tomperi 036f3894f1 Fix simplifyRedundantParanthesis() to work after '}' 2009-10-05 14:30:05 +03:00
Reijo Tomperi 5a0a5422c3 Fix #776 (Tokenizer: remove useless brackets around variable assignment)
http://sourceforge.net/apps/trac/cppcheck/ticket/776
2009-10-05 14:22:35 +03:00
Reijo Tomperi fc684d7b5a Fix #778 (Tokenizer: impove simplification inside if())
http://sourceforge.net/apps/trac/cppcheck/ticket/778
2009-10-05 14:10:09 +03:00
Reijo Tomperi 1df8f38423 Fix #793 (Improve passedByValue check)
http://sourceforge.net/apps/trac/cppcheck/ticket/793
2009-10-05 11:59:28 +03:00
Reijo Tomperi 8bb812548c Fix #777 (Tokenizer: double casting simplified incorrectly)
http://sourceforge.net/apps/trac/cppcheck/ticket/777
2009-10-05 00:12:12 +03:00
Reijo Tomperi 498beb7d9a Fix #784 (Tokenizer: Simplify 2[a] -> a[2])
http://sourceforge.net/apps/trac/cppcheck/ticket/784
2009-10-04 23:33:41 +03:00
Daniel Marjamäki 23d8937661 Fixed #789 (false positive: resource leak reported when using for loop) 2009-10-04 19:58:41 +02:00
Daniel Marjamäki 4a66edd408 Fixed #786 (memleak: segmentation fault for 'if TRACE_ON(x)') 2009-10-04 19:30:25 +02:00
Daniel Marjamäki ab18f1bd3c Preprocessor: Minor fixes (#772) 2009-10-04 15:41:50 +02:00
Daniel Marjamäki 6b1fae75e5 Fixed #785 (False positive: resource leak of extern FILE*) 2009-10-04 14:24:41 +02:00
Daniel Marjamäki b9cae72b6b doc: fixed linebreak in previous commit 6aea2faacd 2009-10-04 13:49:17 +02:00
Daniel Marjamäki 6aea2faacd doc: refactoring of the docs for CheckOther 2009-10-04 13:46:37 +02:00
Daniel Marjamäki 7f6fcc6556 Removed CheckOther::warningIf 2009-10-04 13:32:04 +02:00
Daniel Marjamäki af5a695f82 Fixed #727 (False positive: Resource leak when release is done inside function call) 2009-10-04 13:10:08 +02:00
Slava Semushin 3c5b13a276 Fixed #783 (Refactoring: autoVariables error message is hard coded in 3 locations)
http://sourceforge.net/apps/trac/cppcheck/ticket/783
2009-10-04 16:47:47 +07:00
Daniel Marjamäki 29e7261529 astyle formatting 2009-10-04 11:28:37 +02:00
Slava Semushin f6462abef2 src/preprocessor.h: fixed comment.
removeParantheses() doesn't throws exception.

Correction for 1a48f869c8 commit.

No code change.
2009-10-04 12:55:23 +07:00
Daniel Marjamäki ee1bcb728c use '<' comparisons instead of '>' (#610) 2009-10-04 07:51:12 +02:00
Daniel Marjamäki 1a48f869c8 Fixed #772 (Preprocessor: #if(A) is not seen equal to #if A) 2009-10-04 07:25:30 +02:00
Daniel Marjamäki 4387071eb1 Fixed #733 (New check: locking & unlocking mutex and semaphore variables) 2009-10-03 21:46:22 +02:00
Slava Semushin b0d8b6ca8b Fixed #780 (Tokenizer: replace typedef for pointers to struct)
http://sourceforge.net/apps/trac/cppcheck/ticket/780
2009-10-03 22:02:23 +07:00
Slava Semushin 803748a654 Token::Match(): made message about bug more verbose. 2009-10-03 21:35:25 +07:00
Slava Semushin 9a48efec00 Fixed #775 (###### If you see this, there is a bug ###### Token::Match() - varid was 0)
http://sourceforge.net/apps/trac/cppcheck/ticket/775
2009-10-03 21:27:16 +07:00
Slava Semushin 8dc9528a74 Tokenizer::simplifyVarDecl(): join 2 conditions.
No functional change.
2009-10-03 17:11:52 +07: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
Daniel Marjamäki 0448753b13 Borland C++: Fixed compiler errors 2009-10-03 09:34:38 +02:00
Reijo Tomperi 70e236bc56 Attempt to speed up preprocessing on macro-in-macro situations.
See #762 (version 1.37 of cppcheck runs extremely slowly on windows)
http://sourceforge.net/apps/trac/cppcheck/ticket/762
2009-10-02 22:17:20 +03:00
Reijo Tomperi 6989670e8f Abort comma simplification when ", %num%" is detected.
This increases speed a lot in some rare situations.
2009-10-02 15:38:41 +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 b3ad712b61 Fix #421 (Memory leak not found when typeid() is used.)
http://sourceforge.net/apps/trac/cppcheck/ticket/421
2009-10-01 11:56:59 +03:00
Reijo Tomperi f1e1f9b8f7 Trivial refactoring 2009-10-01 11:37:15 +03:00
Reijo Tomperi 4650e513e1 Fix #741 (False positive: Buffer overrun with -a when index increased in multiple locations)
http://sourceforge.net/apps/trac/cppcheck/ticket/741
2009-10-01 11:33:53 +03:00
Reijo Tomperi d4a97eb2b4 Fix #419 (missleading buffer overrun)
http://sourceforge.net/apps/trac/cppcheck/ticket/419
2009-10-01 10:59:27 +03:00
Reijo Tomperi 37fb0d8c8a Removed dead code created by previous commit 2009-10-01 10:28:30 +03:00
Reijo Tomperi 39092150e2 Fix #763 (Tokenizer: Goto incorrectly simplified)
http://sourceforge.net/apps/trac/cppcheck/ticket/763
2009-10-01 10:25:32 +03: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 ec44f8f6c7 Fix #744 (False positive: (possible error) Array index out of bounds)
http://sourceforge.net/apps/trac/cppcheck/ticket/744
2009-09-30 15:51:33 +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 7852d38f54 Fix #761 (Tokenizer: typedef inside class is incorrectly simplified)
http://sourceforge.net/apps/trac/cppcheck/ticket/761
2009-09-30 14:35:00 +03:00
Reijo Tomperi bb1a9a07e4 Fix #760 (Tokenizer: Goto not simplified)
http://sourceforge.net/apps/trac/cppcheck/ticket/760
2009-09-30 14:30:53 +03:00
Reijo Tomperi 724c78fb4d Fix #750 (cppcheck wants variable outside do-loop to be only inside loop)
http://sourceforge.net/apps/trac/cppcheck/ticket/750
Fix #758 (False positive on variable scope with boost foreach)
http://sourceforge.net/apps/trac/cppcheck/ticket/758
2009-09-30 00:56:43 +03:00
Reijo Tomperi 9d9d600d43 Changed simplifyConditionOperator() to create also {} around if and else
Fixed validate() in tokenizer.
2009-09-29 23:27:10 +03:00
Reijo Tomperi 1b1047a5e4 Fix #757 (Change message: (style) The class 'KClass' has no constructor)
http://sourceforge.net/apps/trac/cppcheck/ticket/757
2009-09-29 21:27:17 +03:00
Slava Semushin 88dd9846ae Tokenizer::tokenize(): removed useless const_cast.
No functional change.
2009-09-30 00:37:56 +07:00
Daniel Marjamäki 12b29e35ad Ashim Kapoor: deal with backspace better (#694) 2009-09-29 17:02:19 +02:00
Reijo Tomperi 63523316a2 Check nullpointer check is now executed without --style flag
Added TODO test case for nullpointer check
2009-09-29 16:38:05 +03:00
Reijo Tomperi 64f0f3b308 Fix #751 (if-condition considered redundant even with else-branch)
http://sourceforge.net/apps/trac/cppcheck/ticket/751
Fix also other issue with if(a.b) delete c.b;
Fix also other issue with if(a.b.c) delete a.b.c;
2009-09-29 00:18:40 +03:00
Daniel Marjamäki 311f6dc92e Fixed #746 (False positive, Memory leak when goto is used) 2009-09-28 22:58:06 +02:00
Daniel Marjamäki 1427f0a2c7 memory leaks: fixed a TODO_ASSERT_EQUALS for a false positive 2009-09-28 22:41:45 +02:00
Reijo Tomperi 949ad462c7 Fix #739 (Pre-defined output format templates)
http://sourceforge.net/apps/trac/cppcheck/ticket/739
Patch from lanurmi. Slightly modified by me.
2009-09-28 22:48:27 +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
Daniel Marjamäki a61abcbbc8 Fixed #728 (False positive, resource leak, when released in a loop) 2009-09-27 21:49:07 +02:00
Slava Semushin 342e71803f src/checkbufferoverrun.cpp: fixed regression.
test suite was broken after my
e8c83613e4 commit.
2009-09-27 23:03:11 +07:00
Slava Semushin e8c83613e4 Fixed #740 (False positive, buffer overrun with --all)
Regression since 07f41f4563 commit.

http://sourceforge.net/apps/trac/cppcheck/ticket/740
2009-09-27 22:50:59 +07:00
Slava Semushin f62e5f1672 src/checkbufferoverrun.cpp: removed useless semicolon.
No functional change.
2009-09-27 22:14:58 +07:00
Slava Semushin 661ce78b69 Fixed #738 (False Buffer overrun with -a when i is increased by more than 1 inside loop body)
http://sourceforge.net/apps/trac/cppcheck/ticket/738
2009-09-27 22:14:51 +07:00
Reijo Tomperi fdde2182b9 Fix GPL comments in all files. ">." was missing from the end. 2009-09-27 18:08:31 +03:00
Reijo Tomperi 9df2b84233 Remove redundant comparison 2009-09-27 17:53:09 +03:00
Slava Semushin 07f41f4563 Fixed #714 (False Buffer overrun with -a when i is increased by more than 1 in a loop)
http://sourceforge.net/apps/trac/cppcheck/ticket/714
2009-09-27 21:12:46 +07:00
Reijo Tomperi d1f3953cce Fix #720 (String length for strings like this "\x61" is calculated wrong)
http://sourceforge.net/apps/trac/cppcheck/ticket/720
2009-09-27 17:04:10 +03:00
Slava Semushin 7e2208b5cc Detects invalid iterator inside for() when postfix form of increment used. 2009-09-27 15:10:21 +07:00
Slava Semushin 5285635354 Fixed #735 (Detects invalid iterator after push_back() when iterator declared inside for())
http://sourceforge.net/apps/trac/cppcheck/ticket/735
2009-09-27 14:59:19 +07:00
Slava Semushin acdbb20c99 Detect buffer overruns when ?: use as sprintf() argument. 2009-09-27 00:40:58 +07:00
Slava Semushin 19ed8e9311 Fixed #729 (False positive: Buffer overrun when ? is used to select parameter)
http://sourceforge.net/apps/trac/cppcheck/ticket/729
2009-09-27 00:06:54 +07:00
Slava Semushin 50a34b8a37 Fixed #731 (False positive, strcpy copying a buffer with a null character)
http://sourceforge.net/apps/trac/cppcheck/ticket/731
2009-09-26 22:58:14 +07:00
Slava Semushin 6d56ab9df6 CheckBufferOverrun::count(): commented out debug message.
Added in 3da779725d commit.
2009-09-26 21:59:16 +07:00
Daniel Marjamäki 3da779725d Ashim Kapoor: handle %i,%f,%d,%x,%X better (#694) 2009-09-26 16:19:18 +02: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
Daniel Marjamäki 0b3a139b3b Fixed #710 (False positive: invalid vector iterator after push_back) 2009-09-26 11:49:09 +02:00
Daniel Marjamäki 482a2f9d95 Fixed #718 (False positive, resource leak when break in a loop before exit) 2009-09-26 07:19:22 +02:00
Reijo Tomperi 6a63742dde Fix #730 (False positive, buffer overrun with strncpy)
http://sourceforge.net/apps/trac/cppcheck/ticket/730
2009-09-25 23:32:18 +03:00
Daniel Marjamäki fd311e3c72 Fixed #678 (False positive: Unused private function produced by inner class) 2009-09-25 20:42:22 +02:00
Daniel Marjamäki fe3c8cab9f Ashim Kapoor: Added function that returns minimum size of format strings (#694) 2009-09-25 18:23:44 +02:00
Reijo Tomperi 2594f9b63f Merge branch 'master' of git@github.com:danmar/cppcheck 2009-09-24 23:47:28 +03:00
Reijo Tomperi 16e55f4f89 Improve C style pointer cast detection
http://sourceforge.net/apps/trac/cppcheck/ticket/724
2009-09-24 23:46:08 +03:00
Daniel Marjamäki cd94d50526 Memory leaks: fixed a TODO_ASSERT_EQUALS 2009-09-24 22:40:18 +02:00
Daniel Marjamäki fa4e0a617e Fixed #700 (False positive: Memory leak) 2009-09-23 22:42:07 +02:00
Daniel Marjamäki 36c838c0e2 Replaced UNIT_TESTING ifdef with _MSC_VER 2009-09-23 22:16:46 +02:00