Overview
- Core Cppcheck
- Add 1 new checker (C++)
- Improved value flow (C++)
- Check for unused functions when -j is used (C++)
- Configurations
- Add a configuration (XML)
- Auto generate configuration (C++ / scripting)
- GUI for editing configurations (C++,Qt)
- Distributed computing
- Distributed computing (C++)
1. Core Cppcheck
Project 1.1
Name: Add 1 new checker
Skills required: C++
Description: There are several tickets in our issue tracker that has ideas for new checkers.
The subtasks will be: implement a new checker, write test cases, test it against various projects.
Project 1.2
Name: Improved value flow
Skills required: C++
Description: The value flow analysis is used by various checkers - therefore improving
this will mean that many checkers get better. It is possible to improve the value flow analysis, for example
after conditions, inside loops, etc.
Project 1.3
Name: Check for unused functions when -j is used
Skills required: C++, threads
Description: Currently the check for unused functions only works when the analysis is
single-threaded. When multithreaded analysis is done the check is disabled. The function usage must be
stored in a thread safe way. The problem is that you don't have access to mutexes inside the check so
instead of store to the same container from different threads it might be a good idea to store the
function usage in different containers. And when all threads are done the results can be "merged".
2. Configurations
Project 2.1
Name: Add a configuration
Skills required: C/C++ (not much), XML
Description: More configuration files are needed for various libraries. Subtasks: choose
a popular library. Analyse the library functions and read API documentation. Write proper configuration
file for Cppcheck.
Project 2.2
Name: Autogenerated configurations
Skills required: C++ / scripting
Description: Auto generate configuration from headers. To parse the headers,
you can for instance do this yourself (python script/c++/..) or you can modify cppcheck and
use the symboldatabase.
Project 2.3
Name: GUI for editing configurations
Skills required: C++, Qt
Description: A graphical user interface for editing configurations would be nice. This should be
added in the cppcheck-gui program.
3. Distributed computing
Project 3.1
Name: Distributed computing
Skills required: Network, script, C++
Description: Make it possible to distribute analysis. A client and server needs to be written. The client will
execute cppcheck to perform analysis.