// RUN: %clang_cc1 %s -emit-llvm -o -

#pragma pack(push, 2)
struct H {
  unsigned long f1;
  unsigned long f2;
  union {
    struct opaque1 *f3;
    struct opaque2 *f4;
    struct {
      struct opaque3 *f5;
      unsigned short  f6;
    } f7;
  } f8;
};
#pragma pack(pop)

struct E {
  unsigned long f1;
  unsigned long f2;
};

typedef long (*FuncPtr) (void);

extern long bork(FuncPtr handler, const struct E *list);

static long hndlr(void)
{
  struct H cmd = { 4, 412 };
  struct H cmd2 = { 4, 412, 0 };
  return 0;
}
void foo(void *inWindow) {
  static const struct E events[] = {
    { 123124, 1 }
  };
  bork(hndlr, events);
}
