[cfe-dev] warning request: partial array initialisation
Sebastian Redl
sebastian.redl at getdesigned.at
Tue Jun 19 15:17:26 PDT 2012
On 19.06.2012, at 18:49, Chandler Carruth 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)."
>
> We would have a problem with lots of code which intended to initialized the first few elements, and zero out the rest.
>
> Maybe someone has clever ideas about how to syntactically differentiate between these two use cases?
const int a[] = { 3, 1, 4, 1, 5, 9, 2 };
static_assert(arraysize(a) == N, "N was increased, you need more initializers");
Sebastian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120620/7b3421b0/attachment.html>
More information about the cfe-dev
mailing list