C and C++ analysis configuration improvement and analysis cache size reduction

Hello dear C and C++ users.

We are very happy to bring you a few significant improvements to the C and C++ analysis
The analysis is now more usable:

  • the C and C++ analysis cache has been optimized and its size is reduced by 90% in average.

The analysis is now more precise.

  • the support of many compiler flags has been improved for all compilers. In particular, this has an impact on aspects related to include directories and predefined macros.
  • the distinction between user headers and system headers has been vastly improved

Both these improvements lead to a more correct parsing of the code and a better understanding of what code can be fixed by the user. This lead to a significant reductions in both false positives and false negatives.

As usual, this also comes with a variety of improvements and fixes.
The exhaustive list is available in the release notes.

All this is already available on SonarCloud.io and will be available with SonarQube 9.4 starting from Developer Edition.