C++ static code analysis
- Code Smell
Null pointers should not be dereferenced
Dynamically allocated memory should be released
All code should be reachable
Identical expressions should not be used on both sides of a binary operator
All branches in a conditional structure should not have exactly the same implementation
Freed memory should not be used
"goto" statements should not be used
Recursion should not be used
Collapsible "if" statements should be merged
Cognitive Complexity of functions should not be too high
All "if ... else if" constructs shall be terminated with an "else" clause
Unique rules find Bugs, Vulnerabilities, Security Hotspots, and Code Smells in your C++ code using
Cross-function, cross-file analysis
Analyzing a large project can be cumbersome. We give you the tools to speed it up.
Incremental analysis lets you cache the results of analysis so subsequent analyses can check only what changed in the new build.
Most machines are multi-core, and analysis can be too. Configure how many threads your analysis uses to make the most of your infrastructure.
A sample of available Maintainability rules
Demos: How it fits into your dev workflow
How it fits into your toolchain
Pricing, summary and questions
SonarQube analysis integrates seamlessly into your environment.
Windows, Linux, macOS
Clang, GCC, MSVC, ARM, QNX compilers
Intel compilers for Linux, macOS
Compilers based wholly on GCC including Linaro GCC
Wind River Diab and GCC
IAR compilers for 8051, ARM, AVR32, AVR, Renesas RL78, Renesas RX, Renesas V850, Renesas H8, and Texas Instruments MSP430
Texas Instruments compilers on Windows and macOS for ARM, C2000, C6000, C7000, MSP430, PRU
Classical and modern C++: C++98, C++03, C++ 11, C++14, C++17
C++ Core Guidelines
MISRA C++ 2008