/* Compound literals, added to C99 */
struct simple {
  int a;
  int b;
};

typedef struct simple simple_t;

int main (/*@unused@*/ int argc, /*@unused@*/ char **argv) {
  /* This works */
  struct simple simple1 = {1,2};
  /* These don't */
  struct simple simple2 = (struct simple){1,2};
  simple_t simple3 = (((((((simple_t){1,2}))))));
  simple2 = (struct simple) { 1, 2 };
  printf("%d, %d\n", simple1.a, simple1.b);
  printf("%d, %d\n", simple2.a, simple2.b);
  printf("%d, %d\n", simple3.a, simple3.b);
  return 1;
}


syntax highlighted by Code2HTML, v. 0.9.1