1 static int ref[] = { 2 [1] = 3, 3 [2] = 3, 4 [3] = 3, 5 [2] = 2, /* check-should-warn */ 6 [1] = 1, /* check-should-warn */ 7 }; 8 9 static int foo[] = { 10 [1 ... 3] = 3, 11 }; 12 13 static int foz[4] = { 14 [0 ... 3] = 3, 15 [0] = 0, 16 [1] = 0, 17 [2 ... 3] = 1, 18 [2] = 3, /* check-should-warn */ 19 [3] = 3, /* check-should-warn */ 20 }; 21 22 static int bar[] = { 23 [1 ... 3] = 3, 24 [1] = 1, /* check-should-warn */ 25 [2] = 2, /* check-should-warn */ 26 [2 ... 4] = 2, /* check-should-warn */ 27 [2 ... 3] = 2, /* check-should-warn */ 28 [4] = 4, /* check-should-warn */ 29 [0] = 0, 30 [5] = 5, 31 }; 32 33 static int baz[3][3] = { 34 [0 ... 2][0 ... 2] = 0, 35 [0] = { 0, 0, 0, }, /* check-should-warn */ 36 [0][0] = 1, /* check-should-warn */ 37 [1] = { 0, 0, 0, }, /* check-should-warn */ 38 [1][0] = 1, /* check-should-warn */ 39 [1][1] = 1, /* check-should-warn */ 40 [1 ... 2][1 ... 2] = 2, 41 }; 42 43 44 struct s { 45 int i; 46 int a[2]; 47 }; 48 49 static struct s s = { 50 .a[0] = 0, 51 .a[1] = 1, 52 }; 53 54 static struct s a[2] = { 55 [0].i = 0, 56 [1].i = 1, 57 [0].a[0] = 2, 58 [0].a[1] = 3, 59 }; 60 61 static struct s b[2] = { 62 [0 ... 1] = { 0, { 1, 2 }, }, 63 [0].i = 0, 64 [1].i = 1, 65 [0].a[0] = 2, 66 [0].a[1] = 3, 67 }; 68 69 /* 70 * check-name: field-override 71 * check-command: sparse -Woverride-init -Woverride-init-all $file 72 * 73 * check-error-start 74 field-override.c:2:10: warning: Initializer entry defined twice 75 field-override.c:6:10: also defined here 76 field-override.c:3:10: warning: Initializer entry defined twice 77 field-override.c:5:10: also defined here 78 field-override.c:17:10: warning: Initializer entry defined twice 79 field-override.c:18:10: also defined here 80 field-override.c:17:10: warning: Initializer entry defined twice 81 field-override.c:19:10: also defined here 82 field-override.c:23:10: warning: Initializer entry defined twice 83 field-override.c:24:10: also defined here 84 field-override.c:23:10: warning: Initializer entry defined twice 85 field-override.c:25:10: also defined here 86 field-override.c:23:10: warning: Initializer entry defined twice 87 field-override.c:26:10: also defined here 88 field-override.c:26:10: warning: Initializer entry defined twice 89 field-override.c:27:10: also defined here 90 field-override.c:26:10: warning: Initializer entry defined twice 91 field-override.c:28:10: also defined here 92 field-override.c:35:10: warning: Initializer entry defined twice 93 field-override.c:36:10: also defined here 94 field-override.c:37:10: warning: Initializer entry defined twice 95 field-override.c:38:10: also defined here 96 field-override.c:37:10: warning: Initializer entry defined twice 97 field-override.c:39:10: also defined here 98 field-override.c:37:10: warning: Initializer entry defined twice 99 field-override.c:40:10: also defined here 100 * check-error-end 101 */