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  */