github/codeql-coding-standards

`A12-8-6`: Compiler generated special functions are not consistently flagged

lcartey opened this issue · 0 comments

Affected rules

  • A12-8-6

Description

Compiler generated special functions are not always flagged by this rule, because the extractor does not always generate them.

In CodeQL CLI v2.16.6 and before, this mainly affected non-template classes. However, after the upgrade to CodeQL CLI v2.18.4, special functions are not consistently generated for template classes either.

This can be addressed by extending the TrivialType library to support additional cases where the function would be compiler generated, but where it currently isn't detected.

Example

class BaseClass2 {}; // NON_COMPLIANT - compiler generated move and assignment

template <class T> class BaseClass9 { // NON_COMPLIANT