init_braces.c revision 1.2
11.2Srillig/* $NetBSD: init_braces.c,v 1.2 2022/06/22 19:23:18 rillig Exp $ */ 21.1Srillig# 3 "init_braces.c" 31.1Srillig 41.1Srillig/* 51.1Srillig * Test initialization with excess braces around expressions. 61.1Srillig * 71.1Srillig * See also: 81.1Srillig * C99 6.7.8 91.1Srillig * C11 6.7.9 101.1Srillig */ 111.1Srillig 121.1Srilligvoid 131.1Srilliginit_int(void) 141.1Srillig{ 151.1Srillig /* gcc-expect+2: error: invalid initializer */ 161.1Srillig /* clang-expect+1: error: array initializer must be an initializer list */ 171.1Srillig /* expect+2: error: {}-enclosed initializer required [181] */ 181.2Srillig /* expect+1: error: empty array declaration for 'num0' [190] */ 191.1Srillig int num0[] = 0; 201.1Srillig int num1[] = { 1 }; 211.1Srillig /* gcc-expect+2: warning: braces around scalar initializer */ 221.1Srillig /* clang-expect+1: warning: braces around scalar initializer */ 231.1Srillig int num2[] = {{ 1 }}; 241.1Srillig /* gcc-expect+3: warning: braces around scalar initializer */ 251.1Srillig /* gcc-expect+2: warning: braces around scalar initializer */ 261.1Srillig /* clang-expect+1: warning: too many braces around scalar initializer */ 271.1Srillig int num3[] = {{{ 1 }}}; 281.1Srillig /* gcc-expect+5: warning: braces around scalar initializer */ 291.1Srillig /* gcc-expect+4: warning: braces around scalar initializer */ 301.1Srillig /* gcc-expect+3: warning: braces around scalar initializer */ 311.1Srillig /* clang-expect+2: warning: too many braces around scalar initializer */ 321.1Srillig /* clang-expect+1: warning: too many braces around scalar initializer */ 331.1Srillig int num4[] = {{{{ 1 }}}}; 341.1Srillig} 351.1Srillig 361.1Srilligvoid 371.1Srilliginit_string(void) 381.1Srillig{ 391.1Srillig char name0[] = ""; 401.1Srillig char name1[] = { "" }; 411.1Srillig /* gcc-expect+5: warning: braces around scalar initializer */ 421.1Srillig /* gcc-expect+4: warning: initialization of 'char' from 'char *' makes integer from pointer without a cast */ 431.1Srillig /* clang-expect+3: warning: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char [1]' */ 441.1Srillig /* clang-expect+2: warning: braces around scalar initializer */ 451.2Srillig /* expect+1: warning: illegal combination of integer 'char' and pointer 'pointer to char' [183] */ 461.1Srillig char name2[] = {{ "" }}; 471.1Srillig /* gcc-expect+6: warning: braces around scalar initializer */ 481.1Srillig /* gcc-expect+5: warning: braces around scalar initializer */ 491.1Srillig /* gcc-expect+4: warning: initialization of 'char' from 'char *' makes integer from pointer without a cast */ 501.1Srillig /* clang-expect+3: warning: too many braces around scalar initializer */ 511.1Srillig /* clang-expect+2: warning: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char [1]' */ 521.2Srillig /* expect+1: warning: illegal combination of integer 'char' and pointer 'pointer to char' [183] */ 531.1Srillig char name3[] = {{{ "" }}}; 541.1Srillig /* gcc-expect+8: warning: braces around scalar initializer */ 551.1Srillig /* gcc-expect+7: warning: braces around scalar initializer */ 561.1Srillig /* gcc-expect+6: warning: braces around scalar initializer */ 571.1Srillig /* gcc-expect+5: warning: initialization of 'char' from 'char *' makes integer from pointer without a cast */ 581.1Srillig /* clang-expect+4: warning: too many braces around scalar initializer */ 591.1Srillig /* clang-expect+3: warning: too many braces around scalar initializer */ 601.1Srillig /* clang-expect+2: warning: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char [1]' */ 611.2Srillig /* expect+1: warning: illegal combination of integer 'char' and pointer 'pointer to char' [183] */ 621.1Srillig char name4[] = {{{{ "" }}}}; 631.1Srillig} 64