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