Introduction
Codee is a development tool that automatically scans Fortran, C, and C++ source code to provide actionable suggestions (referred to as “checks”) to help adhere to the recommendations documented in the Open Catalog of Best Practices for Correctness, Modernization, Security and Optimization. As of January 2025, this catalog includes more than 80 recommendations and continues to expand.
More specifically, Codee performs an static analysis of your code, checking every line against the recommendations of the Open Catalog to identify improvement opportunities without the need to run the code. Codee produces detailed reports tailored to different user profiles, providing insights into code health and actionable steps for correctness, modernization, security and optimization.
Installation
Please refer to the Codee Installation Guide for platform-specific instructions. Note that you require a valid license to use codee analyzer capabilites.
Standalone tool
Usage example
Please refer to the Fortran Basic Workflow or to the C/C++ Basic Workflow guides to explore how to start using Codee analyzer.
Disable analyzer
Certain Codee checkers can be disabled for a specific section of the source
code by enclosing it between the pragmas
!$pragma codee suppress_begin(<check-id>) and
!$pragma codee suppress_end(<check-id>). Note that those pragmas work for
Fortran, in C/C++ you need to replace it by #pragma. Also replace check-id
with the id of the checker you want to suppress. See example below:
- Fortran
- C/C++
!$pragma codee suppress_begin(<check-id>)
<Code block>
!$pragma codee suppress_end(<check-id>)
#pragma codee suppress_begin(<check-id>)
<Code block>
#pragma codee suppress_end(<check-id>)
Incremental Static Analysis user guide
To create an analysis database it is necessary to perform first a full analysis of the project. Firstly, execute the following command:
codee screening -p compile_commands.json --db codee.db
Now that the analysis database has been generated by the previous command, users can take advantage of Codee's incremental static analysis capabilities by reusing data from the previous analysis.
In order to take advantage of the Incremental Static Analysis feature (optimizing the analysis time), it is required to specify both an analysis database and a target file in the Codee command.
codee screening -p compile_commands.json -db codee.db target_file.f90
Additional help
Don't forget to run codee --help to explore all the options available!
Integrations with other tools
You can find detailed step-by-step guides for integrating Codee analyzer with various tools at the CI & IDE Integrations section.