13883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// RUN: %clang_cc1 -emit-llvm %s -o /dev/null 23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint test(int X) { 43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return X; 53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christophervoid abc(int *X); 83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint def(int Y, int Z) { 93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher abc(&Z); 103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return Y; 113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct Test { short X, x; int Y, Z; }; 143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint Testing(struct Test *A) { 163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return A->X+A->Y; 173883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 183883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 193883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint Test2(int X, struct Test A, int Y) { 203883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return X+Y+A.X+A.Y; 213883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 223883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint Test3(struct Test A, struct Test B) { 233883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return A.X+A.Y+B.Y+B.Z; 243883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 253883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 263883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct Test Test4(struct Test A) { 273883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return A; 283883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 293883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 303883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherint Test6() { 313883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher int B[200]; 323883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return B[4]; 333883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 343883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 353883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct STest2 { int X; short Y[4]; double Z; }; 363883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher 373883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct STest2 Test7(struct STest2 X) { 383883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher return X; 393883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher} 40