[cfe-dev] warning request: partial array initialisation

Jay Foad jay.foad at gmail.com
Tue Jun 19 10:50:32 PDT 2012


On 19 June 2012 17:49, Chandler Carruth <chandlerc at google.com> wrote:
> On Tue, Jun 19, 2012 at 1:20 AM, Jay Foad <jay.foad at gmail.com> wrote:
>>
>> Hi,
>>
>> I'd really like to be able to get a warning when "almost all" elements
>> of an array are initialised:
>>
>>  #define N 8
>>  const int a[N] = { 3, 1, 4, 1, 5, 9, 2 };
>>  warning: some but not all array elements initialised
>
>
> At least in C++, this warning wouldn't make a lot of sense because all of
> the array elements *are* initialized. [dcl.init.aggr] 8.5.1/7: "If there are
> fewer initializers in the list than there are members in the aggregate, then
> each member not explicitly initialized shall be value-initialized (8.5)."

OK, so pretend the warning said "some but not all array elements
explicitly initialised".

I realise that this construct is well defined (like most other
constructs that compilers warn about). I'd still like to be warned
about it, because it's slightly suspicious. I'm not suggesting that
the warning should be on by default, or included in -Wall, or anything
like that.

Thanks,
Jay.




More information about the cfe-dev mailing list