xref: /aosp_15_r20/external/clang/test/CodeGen/2002-02-17-ArgumentAddress.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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