Speaker
Description
For the development of its offline C++ software, ATLAS uses a custom static checker. This is implemented as a gcc plugin and is automatically enabled for all gcc compilations by the ATLAS build system. This was an important tool for the multithreaded migration of the ATLAS offline code, where it was used to flag constructs which are legal C++ but not thread-friendly. Besides thread-safety, the checker also enforces some ATLAS code quality rules, such as naming conventions, use of proper base classes for Gaudi components, and proper use of Gaudi event context objects. This talk will discuss the capabilities and implementation of the checker and the experience of using it at ATLAS, as well as comments on using it on other code bases, such as key4hep.