// RUN: clang-cc -triple i386-apple-darwin9 -O3 -emit-llvm -o %t %s &&
// RUN: grep 'ret i32 385' %t

void *alloca();

@interface I0 {
@public
  int iv0;
  int iv1;
  int iv2;
}
@end

static int f0(I0 *a0) {
  return (*(a0 + 2)).iv0;
}

static int f1(I0 *a0) {
  return a0[2].iv1;
}

static int f2(I0 *a0) {
  return (*(a0 - 1)).iv2;
}

int g0(void) {
  I0 *a = alloca(sizeof(*a) * 4);
  a[2].iv0 = 5;
  a[2].iv1 = 7;
  a[2].iv2 = 11;
  return f0(a) * f1(a) * f2(&a[3]);
}


