static analysis of C/C++ code
Go to file
Richard Quirk a880469c5a Refactor the same expression check
Work out if a function is inconclusive when creating the entry in the
Expressions class instead of when checking the counts at the end. Store
the result in a new bool flag in the ExpressionTokens helper struct.

The pointer to symbol database and ref to list of const functions are
temporarily stored in  the Expressions helper class to avoid passing
them in too on every endExpr(tok) call.

Use a const reference to ExpressionTokens in the check loop to avoid
repeating the it->second several times, which clarifies what that code
does.
2011-12-01 19:57:04 +01:00
Cppcheck.xcodeproj Adapted Xcode project for version 1.45 and Xcode 3.2.4 2010-10-21 22:57:06 +02:00
cli Run astyle 2011-11-30 20:35:04 +01:00
externals/tinyxml Don't use relative paths in tinyxml.pri. 2010-12-18 16:29:58 +02:00
gui Fixed #3216 (GUI: Crash when cancel is clicked in the New Project dialog) 2011-11-25 07:42:16 +01:00
htdocs Web: Update download to version 1.51 2011-10-22 15:43:12 +02:00
htmlreport Fixed #3057 (cppcheck-htmlreport fails since 1.50) 2011-08-30 20:30:52 +02:00
lib Refactor the same expression check 2011-12-01 19:57:04 +01:00
man Solution for ticket #3353 'Allow explicit undef's for configuration' 2011-11-30 20:24:01 +01:00
rules Add a few more rules 2011-02-02 20:08:03 -06:00
test Fixed #3354 (Incorrect both sides of '||' expression match when using increment in expression.) 2011-12-01 17:46:33 +01:00
tools extracttests.py : improved errors.txt output 2011-11-29 21:35:57 +01:00
win_installer 1.51: Updated versions 2011-10-08 07:45:39 +02:00
.gitignore Update .gitignore 2011-10-28 22:55:14 +02:00
AUTHORS With the agreement of Daniel Marjamäki, I write my name in this AUTHORS file. 2011-06-11 00:03:55 +02:00
COPYING Licensing: Using the GPL 3 license 2008-10-26 07:55:15 +00:00
Changelog 1.51: Updated Changelog 2011-10-08 07:48:29 +02:00
Makefile Fixed #3346 (cygwin detection for _GLIBCXX_DEBUG in Makefile) 2011-11-29 20:35:56 +01:00
build-pcre.txt HAVE_RULES support for build.bat 2011-08-18 16:01:39 -05:00
build.bat Merge pull request #32 from rpavlik/qmake-configure-rules 2011-08-19 13:00:34 -07:00
cppcheck.cbp Update codeblocks project file 2011-10-23 23:13:03 +03:00
cppcheck.cppcheck Fixed: some gui/temp headers reported missing includes from gui/ folder. 2011-11-01 01:07:28 +01:00
cppcheck.sln Update VS solution files for test project name change. 2011-09-26 23:54:08 +03:00
cppcheck_vs2010.sln Visual Studio: auto generated new visual studio project files 2011-10-23 15:42:02 +02:00
createrelease createrelease: added info about how scp is used to upload files to release system 2011-10-08 10:16:38 +02:00
doxyfile doxygen: enabled the JAVADOC_AUTOBRIEF so the @brief isn't required 2010-03-17 21:29:45 +01:00
generate_coverage_report LCOV: updated the generate_coverage_report to avoid some redundant compiler warnings 2011-03-14 11:21:35 +01:00
readme.txt Fix readme.txt to match current HAVE_RULES behaviour. 2011-11-10 21:49:55 +02:00
readme_64-bit_Windows.txt Fixed some spelling mistakes 2010-12-15 18:45:53 +01:00
readme_gui.txt GUITESTS: Add short mention of tests to gui readme. 2011-06-18 13:11:05 +03:00
runastyle changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
runastyle.bat changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
webreport.sh webreport: minor updates 2011-10-23 20:26:32 +02:00

readme.txt

=========
Cppcheck
=========


About

    The original name of this program is "C++check" but it was later changed to "cppcheck".

Manual

    A manual is available online:
    http://cppcheck.sf.net/manual.pdf

Compiling

    Any C++ compiler should work.

    To build the GUI, you need Qt.

    When building the command line tool, PCRE is normally used.
    PCRE is optional.

    There are multiple compilation choices:
      * qmake - cross platform build tool
      * Windows: Visual Studio
      * Windows: Qt Creator + mingw
      * gnu make
      * g++

    qmake
    =====
        You can use the gui/gui.pro file to build the GUI.
            cd gui
            qmake
            make

    Visual Studio
    =============
        Use the cppcheck.sln file. The rules are normally enabled.

        To compile with rules (pcre dependency):
            * the pcre dll is needed. it can be downloaded from:
                http://cppcheck.sf.net/pcre-8.10-vs.zip

        To compile without rules (no dependencies):
            * remove the preprocessor define HAVE_RULES from the project
            * remove the pcre.lib from the project

    Qt Creator + mingw
    ==================
        The PCRE dll is needed to build the CLI. It can be downloaded here:
            http://software-download.name/pcre-library-windows/

    gnu make
    ========
        To build Cppcheck with rules (pcre dependency):
            make HAVE_RULES=yes

        To build Cppcheck without rules (no dependencies):
            make

    g++ (for experts)
    =================
        If you just want to build Cppcheck without dependencies then you can use this command:
            g++ -o cppcheck -Ilib cli/*.cpp lib/*.cpp

        If you want to use --rule and --rule-file then dependencies are needed:
            g++ -o cppcheck -lpcre -DHAVE_RULES -Ilib -Iexternals cli/*.cpp lib/*.cpp externals/tinyxml/*.cpp
    mingw
    =====
        make LDFLAGS=-lshlwapi

Cross compiling Win32 (CLI) version of Cppcheck in Linux

    sudo apt-get install mingw32
    make CXX=i586-mingw32msvc-g++ LDFLAGS="-lshlwapi"
    mv cppcheck cppcheck.exe

Webpage

    http://cppcheck.sourceforge.net/