<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"></p>
<div>Hi All,<br>
<br>
There are multiple features in CodeChecker which could be split into smaller tools so the community could benefit from them.<br>
<br>
1. gcc/g++ compilation database to Clang compilation database conversion tool<br>
2. Plist to HTML report conversion tool<br>
<br>
1. gcc/g++ compilation database to Clang compilation database conversion tool<br>
<br>
One problem is what we want to address is that gcc/g++ compilation commands cannot be forwarded without modification<br>
to the Clang based tools as they were logged or exported by the build system.<br>
<br>
Post-processing of the compilation command is required:<br>
- might contain compilation flags and build targets which are not compatible with Clang (needs to be filtered out)<br>
- the compilation argument filtering needs to be done in every tool which uses the compilation database json (scan-build, scan-build-py, CodeChecker)<br>
- when gcc is used as a cross compiler, hard-coded include paths, flags and compilation target of gcc/g++ are missing from the command line argument list. These needs to be auto-detected and passed to Clang before analysis.<br>
- C/C++ standard versions might be missing from the compilation commands which could change the analysis results (c++11 checker triggers for c++98 code)<br>
<br>
Our idea is to create a separate tool which could transform a gcc/g++ compilation database file into a compile command json file which can be used by Clang based tools without further modification.<br>
The non-compatible flags are filtered out and the necessary cross compilation include paths and compilation flags are added.<br>
Other Clang based tools could also benefit from the converted compilation database json, like clangd.<br>
<br>
2. Plist to HTML report conversion tool (see the source code at https://github.com/Ericsson/codechecker/tree/master/vendor/plist_to_html )<br>
<br>
Currently Clang Static Analyzer can produce HTML output but this should not be done necessarily by the analyzer.<br>
Plist reports can contain much more information and are easier to manage and parse by other tools compared to the html reports.<br>
With our HTML generator tool we can generate static HTML reports which look similar to the report visualization in Xcode or<br>
to the report viewer web UI of CodeChecker. You can move on each event through a bug path and arrows are shown for easier understanding.<br>
<br>
Let us know what do you think about these tools, how well would they fit near the available tools.<br>
Your feedback is appreciated.<br>
<br>
Thanks,<br>
Gyorgy Orban<br>
CodeChecker Team</div>
<p></p>
</div>
</body>
</html>