[cfe-dev] clang-tidy and CppCoreGuidelines

Jonas Toth via cfe-dev cfe-dev at lists.llvm.org
Sun Sep 24 09:53:16 PDT 2017


Hello everybody,

i am currently trying to get an overview on the implementation status of 
the CppCoreGuidelines in all clang tools and especially clang-tidy.

All rules with a section on enforcement are collected here 
(https://github.com/JonasToth/CppCoreGuidelinesTooling), and if possible 
there is the checkname for clang-tidy etc. mentioned.

The implementation status in short:

number of rules:                                       286
number of enforced rules:                        123
number of rules without enforcement:     163

The reason I am writing this here: Most of the checks that would enforce 
the guideline are not in the `cppcoreguidelines-*`-list.

It would be very nice, if there is an easy way to enable all checks for 
the guideline, but adding ~100 aliases in clang-tidy is infeasable and 
since many rules would apply to other guidelines as well it isn't 
scalable, too. Such a change would mean, that sections like 
`readability, modernize, performance, ...` still exist standalone as 
well as especially for a guideline implemented checks like 
`cppcoreguideline-owning-memory`. But when running clang-tidy to enforce 
a guideline, clang-tidy would directly activate all checks necessary to 
do so, even if there is no alias in the related module.

I would like to propose/discuss the possibility to have built-in 
configurations in clang-tidy, that would activate and configure all 
related checks. Such a feature would benefit other guidelines (High 
Integrity C++, CERT) and reduce duplication.

A quick way to implement this: custom configuration files directly 
shipped with clang-tidy.


A discussion on that issue would be very nice! I am willing to spent 
some time on an implementation for that issue as well.


All the best, Jonas




More information about the cfe-dev mailing list