Why do you believe it’s a false-positive/false-negative?
A C++20 designated-initializer clause can be a an initializer-clause (with = in front) or a braced-init-list. For a braced-init-list, I see no reason why additional braces should be required. In fact, an additional set of braces would not even compile (at least with MSVC).
Are you using
SonarQube - which version?
Enterprise Edition Version 9.9 (build 65466)
How can we reproduce the problem? Give us a self-contained snippet of code (formatted text, no screenshots)
struct X
{
int y;
};
// SonarQube reports code smell "cpp:S835 braces around scalar initializer"
X x{.y{3}};
// Compiler reports "error C2440: 'initializing': cannot convert from 'initializer list' to 'int'"
X x2{.y{{3}}};