// Cforall extensions

int * v1 = 0, v2 = 0;
int * v3 = 0, v4 = 0;

void fred() {
    int y1, y2[20]  = { 1, 2, 3 };

    // designators

    struct {
	[int] w;
    } a = { .w : [2] };

    struct { int a[3], b; } w [] = { [0].a : {1}, [0].b : 1, [1].a[0] : 2 };

    struct {
	int f1, f2, f3;
	struct { int g1, g2, g3; } f4[4];
    } v7 = {
	.f1 : 4,
	.f2 : 3,
	.f4[2] : {
	    .g1 : 3,
	    .g3 : 0,
	},
	.f4[3].g3 : 7,
    };
}

struct point { int x; int z; struct {int y1, y2, y3;} y; int w;};
struct quintet { int v, w, x, y, z;};

int foo() {
  return 4;
}

int main() {
  foo();
  int i;
  struct point p1 = { x: 3 };
  struct point p2 = { 3, 4 };
  struct point p3 = { .[x,z]: 5, y : { .[y3,y1] : 6, 17 } };
  struct point p4 = { w : 5, 4 };
}
