Paolo Carlini <paolo.carl...@oracle.com> writes:

> I'm trying to resolve one way or another this PR, which I have assigned
> to myself a long time ago... The issue essentially is very simple. This
> kind of code:
>
>     struct S { int s[3]; };
>     struct S s1 = { 1, 1, 1 };
>
> triggers a warning with -Wall about missing braces around initializer,
> which some people consider a bit overzealous, in particular in
> relationship with std::array (std::tr1::array).
>
> Today, I was comparing GCC to ICC and SunStudio and noticed that, please
> correct me if I'm wrong about the details:
>
>     - ICC: lacks completely an equivalent of -Wmissing-braces, never warns.
>     - SunStudio: only warns with +w2, doesn't warn with +w.
>
> Therefore, my idea to resolve 25137 and make progress in this area would
> be moving -Wmissing-braces from -Wall to -Wextra: the corresponding
> patch, as expected, is trivial, and it would be for me only matter to
> tweak the testsuites a bit (A refinement of that proposal would be doing
> the change only for the C++ front-end)

The point of -Wmissing-braces is to warn if you if you are not
initializing the fields you think you are.  Given that, I tend to feel
that -Wmissing-braces is doing the right thing, and I tend to feel
that it should be in -Wall.

I could see a counter-argument for special cases like the above, but
then we have to start enumerating special cases.

I don't really understand how this interacts with std::tr1:array,
though.

Ian

Reply via email to