// RUN: clang-cc -emit-llvm < %s -o -

// A nice and complicated initialization example with unions from Python
typedef int Py_ssize_t;

typedef union _gc_head {
  struct {
    union _gc_head *gc_next;
    union _gc_head *gc_prev;
    Py_ssize_t gc_refs;
  } gc;
  long double dummy;  /* force worst-case alignment */
} PyGC_Head;

struct gc_generation {
  PyGC_Head head;
  int threshold; /* collection threshold */
  int count;     /* count of allocations or collections of younger
                    generations */
};

#define NUM_GENERATIONS 3
#define GEN_HEAD(n) (&generations[n].head)

/* linked lists of container objects */
struct gc_generation generations[NUM_GENERATIONS] = {
  /* PyGC_Head,                     threshold,      count */
  {{{GEN_HEAD(0), GEN_HEAD(0), 0}}, 700,            0},
  {{{GEN_HEAD(1), GEN_HEAD(1), 0}},  10,            0},
  {{{GEN_HEAD(2), GEN_HEAD(2), 0}},  10,            0},
};
