// RUN: %llvmgcc -S %s -o - | llvm-as -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;
}
