They can otherwise easily get lost in the Application output pane.
Policy is as follows:
- Failure to analyze a specific file is considered a warning.
- If no file could be successfully analyzed, we add an
error and pop up the issues pane.
This approach is neither too noisy nor too quiet.
Change-Id: Ifc577a215006a6a565eee7de5099bd690427f7de
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Via clang-cl, which supports the --analyze option now.
Change-Id: Idbefe048eaa80e8c5bdb2244cb30c26ba7c71ef5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This fixes an infinite loop for the following use case:
1. Menu: Analyze > Clang Static Analzyer
2. When finished, click "Re-run this run-configuration" in the
application output pane
m_progress was left in the isFinished() state and the next run to
startEngine() called analyzeNextFile() which returned immediately.
Change-Id: I8acf4f03dfc1d7f81034610828f6fb707655bd52
Sanity-Review: Sanity Bot <srv.sanitybot@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Otherwise we might try to analyze invalid or vanished files.
Change-Id: I387dfb127618f2db21a538b07e1c152dbd026ca6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Terminate/kill current runners, so that the GUI will reflect that quite
soon and not if all runners finished.
Change-Id: I83eed6ecf1678444a8b38bab6cc05d8694a4eb49
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This plugin adds "Clang Static Analyzer" to the Analyze mode, which
processes all implementation/source project files of the current
project. For this, it will call the clang executable for each file.
The found diagnostics will be displayed in a view similar to the one
used in "Valgrind Memory Analyzer".
The user can specify the clang executable to use and the number of
concurrent processes to launch in Menu: Tools > Options > Analyzer >
Clang Static Analyzer.
Main TODOs:
* Fiddle around the appropriate command line options, currently only
defines and include paths are passed on.
* Tests on Windows / OS X.
* Remove dependency to clangcodemodel by moving the functions that
create command line arguments to CppTools. Mostly they are not even
specific to clang (but would also work with gcc).
* Maybe limit to a range of tested clang versions.
* How to deal with directory containing all the log files after the
user starts a new run or Creator is shut down? (delete it? leave it
there? make it configurable?).
* Find out how to properly integrate the tests.
Imaginable future additions:
* Adding a button to load result/log files from a directory, e.g. if
the user used the 'scan-build' approach.
* Adding a button with a filter menu in order to display only
diagnostics from certain categories, similar to "Valgrind Memory
Analyzer".
Change-Id: I6aeb5dfdbdfa239a06c03dd8759a983df71b77ea
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>