1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o /dev/null
2*67e74705SXin Li
test(int X)3*67e74705SXin Li int test(int X) {
4*67e74705SXin Li return X;
5*67e74705SXin Li }
6*67e74705SXin Li
7*67e74705SXin Li void abc(int *X);
def(int Y,int Z)8*67e74705SXin Li int def(int Y, int Z) {
9*67e74705SXin Li abc(&Z);
10*67e74705SXin Li return Y;
11*67e74705SXin Li }
12*67e74705SXin Li
13*67e74705SXin Li struct Test { short X, x; int Y, Z; };
14*67e74705SXin Li
Testing(struct Test * A)15*67e74705SXin Li int Testing(struct Test *A) {
16*67e74705SXin Li return A->X+A->Y;
17*67e74705SXin Li }
18*67e74705SXin Li
Test2(int X,struct Test A,int Y)19*67e74705SXin Li int Test2(int X, struct Test A, int Y) {
20*67e74705SXin Li return X+Y+A.X+A.Y;
21*67e74705SXin Li }
Test3(struct Test A,struct Test B)22*67e74705SXin Li int Test3(struct Test A, struct Test B) {
23*67e74705SXin Li return A.X+A.Y+B.Y+B.Z;
24*67e74705SXin Li }
25*67e74705SXin Li
Test4(struct Test A)26*67e74705SXin Li struct Test Test4(struct Test A) {
27*67e74705SXin Li return A;
28*67e74705SXin Li }
29*67e74705SXin Li
Test6()30*67e74705SXin Li int Test6() {
31*67e74705SXin Li int B[200];
32*67e74705SXin Li return B[4];
33*67e74705SXin Li }
34*67e74705SXin Li
35*67e74705SXin Li struct STest2 { int X; short Y[4]; double Z; };
36*67e74705SXin Li
Test7(struct STest2 X)37*67e74705SXin Li struct STest2 Test7(struct STest2 X) {
38*67e74705SXin Li return X;
39*67e74705SXin Li }
40