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

int test(int X) {
  return X;
}

void abc(int *X);
int def(int Y, int Z) {
  abc(&Z);
  return Y;
}

struct Test { short X, x; int Y, Z; };

int Testing(struct Test *A) {
  return A->X+A->Y;
}

int Test2(int X, struct Test A, int Y) {
  return X+Y+A.X+A.Y;
}
int Test3(struct Test A, struct Test B) {
  return A.X+A.Y+B.Y+B.Z;
}

struct Test Test4(struct Test A) {
  return A;
}

int Test6() {
  int B[200];
  return B[4];
}

struct STest2 { int X; short Y[4]; double Z; };

struct STest2 Test7(struct STest2 X) {
  return X;
}
