static analysis of C/C++ code
Go to file
Daniel Marjamäki a8e1cd8920 Buffer overrun: Fixed a segmentation fault 2008-11-18 19:59:50 +00:00
man Applied patch "errors_only_man" that adds description for "--errorsonly" to the man page. This was submitted by kimmov in bug 2277848 2008-11-15 06:44:32 +00:00
COPYING Licensing: Using the GPL 3 license 2008-10-26 07:55:15 +00:00
CheckBufferOverrun.cpp Buffer overrun: Fixed a segmentation fault 2008-11-18 19:59:50 +00:00
CheckBufferOverrun.h Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
CheckClass.cpp Refactoring: Global variable tokenes is no more. 2008-11-16 15:58:52 +00:00
CheckClass.h Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
CheckHeaders.cpp Refactoring: tokens() changed to const and to return const pointer. 2008-11-16 16:13:38 +00:00
CheckHeaders.h Refactoring: Tokenizer object given as a parameter to most of the classes 2008-11-12 21:34:47 +00:00
CheckMemoryLeak.cpp Memory leak: limit the max call depth to 2 2008-11-18 19:44:27 +00:00
CheckMemoryLeak.h Refactoring: static variable in CheckMemoryLeak is now a private member of the class. 2008-11-16 15:39:42 +00:00
CheckOther.cpp Refactoring: tokens() changed to const and to return const pointer. 2008-11-16 16:13:38 +00:00
CheckOther.h cleanup files 2008-11-15 13:05:58 +00:00
CommonCheck.cpp Refactoring: Global/Static variables, FunctionList, GlobalFunctions and UsedGlobalFunctions are now private members of Tokenizer class. 2008-11-15 22:41:56 +00:00
CommonCheck.h Refactoring: Global/Static variables, FunctionList, GlobalFunctions and UsedGlobalFunctions are now private members of Tokenizer class. 2008-11-15 22:41:56 +00:00
FileLister.cpp FileLister.* and testtokenize.cpp, changed encoding to utf-8 2008-11-06 19:40:49 +00:00
FileLister.h FileLister.* and testtokenize.cpp, changed encoding to utf-8 2008-11-06 19:40:49 +00:00
Makefile Simplify Tokens: Replace NULL with 0 and '(char *)0' with '0' 2008-11-15 16:27:09 +00:00
cppcheck.cbproj Borland C++: Added files "cppcheck" and "settings" to the projects 2008-11-15 07:01:07 +00:00
cppcheck.cpp minor update to startup message 2008-11-17 18:58:06 +00:00
cppcheck.h Refactoring: Global/Static variables, FunctionList, GlobalFunctions and UsedGlobalFunctions are now private members of Tokenizer class. 2008-11-15 22:41:56 +00:00
cppcheck.sln Added Visual C++ 2008 Express solution and project files 2008-11-03 18:57:18 +00:00
cppcheck.vcproj Visual C++ Express 2008: Added project 'testrunner' and updated the project 'cppcheck' 2008-11-15 07:15:01 +00:00
main.cpp Refactoring: New classes CppCheck and Settings. Code from main.cpp was moved to cppcheck.cpp 2008-11-14 22:26:38 +00:00
preprocessor.cpp preprocessor: Better warning when illegal character found 2008-11-17 18:42:58 +00:00
preprocessor.h Refactoring: Following new classes were created: 2008-11-11 06:42:09 +00:00
readme.txt updated command syntax example 2008-02-22 14:58:53 +00:00
settings.cpp Refactoring: New classes CppCheck and Settings. Code from main.cpp was moved to cppcheck.cpp 2008-11-14 22:26:38 +00:00
settings.h Refactoring: New classes CppCheck and Settings. Code from main.cpp was moved to cppcheck.cpp 2008-11-14 22:26:38 +00:00
testbufferoverrun.cpp Array index overrun: Improved the checking of class variables 2008-11-16 18:21:46 +00:00
testcharvar.cpp Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
testconstructors.cpp Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
testdivision.cpp Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
testincompletestatement.cpp Refactoring: Global variable Files is no more. Use tokenizer->getFiles() to get a pointer to it. 2008-11-13 22:39:47 +00:00
testmemleak.cpp Memory leak: moved simplifyTokens rule to '--all' 2008-11-17 17:31:07 +00:00
testpreprocessor.cpp Refactoring: Following new classes were created: 2008-11-11 06:42:09 +00:00
testrunner.cbp codeblocks: Added project file 'testrunner.cbp' 2008-11-15 18:03:59 +00:00
testrunner.cbproj Borland C++: Added files "cppcheck" and "settings" to the projects 2008-11-15 07:01:07 +00:00
testrunner.cpp Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
testrunner.sln Visual C++ Express 2008: Added project 'testrunner' and updated the project 'cppcheck' 2008-11-15 07:15:01 +00:00
testrunner.vcproj Visual C++ Express 2008: Added project 'testrunner' and updated the project 'cppcheck' 2008-11-15 07:15:01 +00:00
testsimplifytokens.cpp Refactoring: Global variable tokenes is no more. 2008-11-16 15:58:52 +00:00
testsuite.cpp Testing: Only run tests in a specified class 2008-10-26 11:11:26 +00:00
testsuite.h GPL: Added comment in testsuite.h 2008-11-08 13:15:48 +00:00
testtokenize.cpp Refactoring: Global variable tokenes is no more. 2008-11-16 15:58:52 +00:00
testunusedprivfunc.cpp Few static variables are now private members. ShowAll etc. global variables are now members of Settings class and given as a 2008-11-16 15:18:50 +00:00
testunusedvar.cpp Refactoring: Global variable Files is no more. Use tokenizer->getFiles() to get a pointer to it. 2008-11-13 22:39:47 +00:00
todo.txt todo: added memory leak examples 2008-11-10 18:52:15 +00:00
tokenize.cpp Refactoring: tokens() changed to const and to return const pointer. 2008-11-16 16:13:38 +00:00
tokenize.h Refactoring: tokens() changed to const and to return const pointer. 2008-11-16 16:13:38 +00:00

readme.txt


=========
C++ check
=========



Compiling

  Any C++ compiler should work. 
  There are no dependencies.

  The Makefile works under Linux.
  To make it work under Windows, change "g++" to "gxx".

  I haven't been able to test it on other platforms.



Usage

  The syntax is:
      cppcheck [--all] [--style] [--recursive] [filename1] [filename2]

  The error messages will be printed to stderr.

  Example (Check all files. Use all checks):
      cppcheck -style --all --recursive


Recommendations

  Create a shell script that checks all files.
  See "checkproj.bat" for an example of how it can be done under Windows.

  When the "--all" flag is given you may get a lot of error messages.

  To dump the messages to a textfile you can use a command like this:
      cppcheck --all filename.cpp 2> messages.txt

  If you want to filter the messages you could use:
    * grep to filter out specific types of messages
    * diff to compare old messages with new messages. There are even GUIs for
      this.



Suggestions

  I'd like to get suggestions about new checks.



Author

  Daniel Marjamäki   (danielm77@spray.se)