A8-5-2
: Create query to cover auto
case
#463
Labels
Difficulty-Low
A false positive or false negative report which is expected to take <1 day effort to address
false positive/false negative
An issue related to observed false positives or false negatives.
Impact-Low
user-report
Issue reported by an end user of CodeQL Coding Standards
Affected rules
A8-5-2
Description
The rule
A8-5-2
(use braced initialization) conflicts with ruleA8-5-3
(A variable of type auto shall not be initialized using {} or ={} braced-initialization). This is because C++14 will deduceauto x2{10};
asstd::initializer_list
, which is usually not what the developer intended. This behaviour is changed in C++17, and in practice many compilers also address it in C++14 mode.In order to use
auto
in a codebase and remain compliant to AUTOSAR a deviation is required either onA8-5-3
, to allow braced initialization forauto
variables where the compiler supports this, or forA8-5-2
, to permit the use of=
initialization withauto
.In the latter case we want to be able to deviate only on those cases which are declared as
auto
. To facilitate that we will split the rule between theauto
and notauto
. Currently, our query only supports the "non-auto" case.Example
auto v = init();
The text was updated successfully, but these errors were encountered: