<div style="font-family: arial, helvetica, sans-serif"><font size="2"><div class="gmail_quote">On Tue, Jun 19, 2012 at 10:50 AM, Jay Foad <span dir="ltr"><<a href="mailto:jay.foad@gmail.com" target="_blank">jay.foad@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 19 June 2012 17:49, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:<br>

> On Tue, Jun 19, 2012 at 1:20 AM, Jay Foad <<a href="mailto:jay.foad@gmail.com">jay.foad@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> I'd really like to be able to get a warning when "almost all" elements<br>
>> of an array are initialised:<br>
>><br>
>>  #define N 8<br>
>>  const int a[N] = { 3, 1, 4, 1, 5, 9, 2 };<br>
>>  warning: some but not all array elements initialised<br>
><br>
><br>
> At least in C++, this warning wouldn't make a lot of sense because all of<br>
> the array elements *are* initialized. [dcl.init.aggr] 8.5.1/7: "If there are<br>
> fewer initializers in the list than there are members in the aggregate, then<br>
> each member not explicitly initialized shall be value-initialized (8.5)."<br>
<br>
</div>OK, so pretend the warning said "some but not all array elements<br>
explicitly initialised".<br>
<br>
I realise that this construct is well defined (like most other<br>
constructs that compilers warn about). I'd still like to be warned<br>
about it, because it's slightly suspicious. I'm not suggesting that<br>
the warning should be on by default, or included in -Wall, or anything<br>
like that.</blockquote><div><br></div><div>We'd like to avoid warnings that don't catch enough bugs and have reasonable enough alternatives to end up eventually under '-Wall'. Having an off-by-default warning slows down the compiler and tends to cause the code to rot.</div>
<div><br></div><div>Also, this seems really like a coding convention or style you would like to enforce, and so I suspect a separate tool would be better suited to it.</div></div></font></div>