init.c revision 1.2
11.2Srillig/* $NetBSD: init.c,v 1.2 2021/12/17 01:00:50 rillig Exp $ */ 21.1Srillig# 3 "init.c" 31.1Srillig 41.1Srillig/* 51.1Srillig * Tests for initialization. 61.1Srillig * 71.1Srillig * C99 6.7.8 81.1Srillig */ 91.1Srillig 101.1Srillig/* 111.1Srillig * C99 does not allow empty initializer braces syntactically. 121.1Srillig * Lint allows this syntactically, it just complains if the resulting 131.1Srillig * object is empty. 141.1Srillig */ 151.1Srillig/* expect+1: error: empty array declaration: empty_array_with_initializer [190] */ 161.1Srilligdouble empty_array_with_initializer[] = {}; 171.1Srilligdouble array_with_empty_initializer[3] = {}; 181.1Srillig 191.1Srillig/* 201.1Srillig * C99 does not allow empty initializer braces syntactically. 211.1Srillig */ 221.1Srilligstruct { 231.1Srillig int member; 241.1Srillig} empty_struct_initializer = {}; 251.2Srillig 261.2Srillig 271.2Srilligtypedef struct { 281.2Srillig const char *key; 291.2Srillig int n; 301.2Srillig} histogram_entry; 311.2Srillig 321.2Srillig/* 331.2Srillig * The C standards allow omitting braces around the structural levels. For 341.2Srillig * human readers, it is usually clearer to include them. 351.2Srillig * 361.2Srillig * Seen in external/ibm-public/postfix/dist/src/util/dict.c(624). 371.2Srillig */ 381.2Srilligconst histogram_entry hgr[] = { 391.2Srillig /* expect+1: error: cannot initialize 'struct typedef histogram_entry' from 'pointer to char' [185] */ 401.2Srillig "odd", 5, 411.2Srillig "even", 5, 421.2Srillig}; 43