text: struct S1 {
  	int a;
  	int b;
  };
  struct S2 {
  	struct S1 s1;
  	struct S1 *ps1;
  	int arr[2];
  };
  struct S1 gs1 = (struct S1) {.a = 1, 2};
  struct S2 *s = &(struct S2) {
  	{.b = 2, .a = 1},
  	&gs1,
  	{[0] = 1,  1+1}
  };
  
  int
  main()
  {
  	if(s->s1.a != 1)
  		return 1;
  	if(s->s1.b != 2)
  		return 2;
  	if(s->ps1->a != 1)
  		return 3;
  	if(s->ps1->b != 2)
  		return 4;
  	if(s->arr[0] != 1)
  		return 5;
  	if(s->arr[1] != 2)
  		return 6;
  	return 0;
  }
  