diff --git a/lib/checkbool.cpp b/lib/checkbool.cpp index 33aef2a83b7..6ef28f42ada 100644 --- a/lib/checkbool.cpp +++ b/lib/checkbool.cpp @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/checkbool.h b/lib/checkbool.h index af9171fc213..0a1491e1735 100644 --- a/lib/checkbool.h +++ b/lib/checkbool.h @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/checksizeof.cpp b/lib/checksizeof.cpp index c047ece98c4..6c614fc0ba0 100644 --- a/lib/checksizeof.cpp +++ b/lib/checksizeof.cpp @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/lib/checksizeof.h b/lib/checksizeof.h index cf27769d6db..e9583ebe818 100644 --- a/lib/checksizeof.h +++ b/lib/checksizeof.h @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/test/testbool.cpp b/test/testbool.cpp index ac1ccc85135..67dea215114 100644 --- a/test/testbool.cpp +++ b/test/testbool.cpp @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/test/testmemleak.cpp b/test/testmemleak.cpp index 684ac3b300c..0a634fb04a7 100644 --- a/test/testmemleak.cpp +++ b/test/testmemleak.cpp @@ -5520,4 +5520,7 @@ class TestMemleakNoVar : public TestFixture { TODO_ASSERT_EQUALS("[test.cpp:7]: (error) Return value of allocation function f is not used.\n", "", errout.str()); } }; + REGISTER_TEST(TestMemleakNoVar) + + diff --git a/test/testsizeof.cpp b/test/testsizeof.cpp index d2fb4bc9c5d..3002da476b7 100644 --- a/test/testsizeof.cpp +++ b/test/testsizeof.cpp @@ -1,6 +1,6 @@ /* * Cppcheck - A tool for static C/C++ code analysis - * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. + * Copyright (C) 2007-2013 Daniel Marjamäki and Cppcheck team. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/tools/readme.md b/tools/readme.md new file mode 100644 index 00000000000..db59cd99558 --- /dev/null +++ b/tools/readme.md @@ -0,0 +1,71 @@ +## Cppcheck developer and build tools + +### * tools/matchcompiler.py + +The matchcompiler.py is a build script that performs a few code transformations to *.cpp* files under the *lib* directory. These transformations are related to the use of `Token::Match()` function and are intented to improve code performance. The transformed files are saved on the *build* directory. This tool is silently used when building the code with `SRCDIR=build`, that is: +```shell +$ cd path/to/cppcheck +$ make SRCDIR=build +``` +Here is a simple example of the *matchcompiler.py* optimization. Suppose there is a file *example.cpp* under *lib/*: +```cpp +// lib/example.cpp +void f1() { + Token::Match(tok, "abc"); +} + +void f2() { + const char *abc = "abc"; + Token::Match(tok, abc); +} +``` +If you manually run *matchcompiler.py* from the main directory: +```shell +$ cd path/to/cppcheck +$ python tools/matchcompiler.py +``` +A file *example.cpp* will be generated on the *build* directory: +```cpp +// build/example.cpp +#include "token.h" +#include "errorlogger.h" +#include +#include +static const std::string matchStr1("abc"); +// pattern: abc +static bool match1(const Token* tok) { + if (!tok || !(tok->str()==matchStr1)/* abc */) + return false; + return true; +} +void f1() { + match1(tok); +} + +void f2() { + const char *abc = "abc"; + Token::Match(tok, abc); +} +``` +From this we can see that the usage of `Token::Match()` in `f1()` has been optimized, whereas the one in `f2()` couldn't be optimized (the string wasn't inline on the `Token::Match()` call). **The developer doesn't need to use this tool during development but should be aware of these optimizations**. *Building with this optimization, cppcheck can get a boost of 2x of speed-up.* + +### * tools/dmake.cpp + +Automatically generates the main `Makefile` for Cppcheck (**the main `Makefile` should not be modified manually**). To build and run the `dmake` tool execute: +```shell +$ cd path/to/cppcheck +$ make dmake +$ ./dmake +``` +### * tools/reduce.cpp + +Cppcheck tool that reduces code for a hang/false positive. To build the tool run: +```shell +$ cd path/to/cppcheck +$ make reduce +``` + +### * tools/times.sh + +Script to generate a `times.log` file that contains timing information of the last 20 revisions. +