10ccb31c389a09216a5b60cf05bd01516ddbe8d4fGalina Kistanova// REQUIRES: x86-registered-target,x86-64-registered-target
2a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -triple x86_64-apple-darwin -S %s -o %t-64.s
34fcfde4d5c8f25e40720972a5543d538a0dcb220Daniel Dunbar// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
4a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -triple i386-apple-darwin -S %s -o %t-32.s
54fcfde4d5c8f25e40720972a5543d538a0dcb220Daniel Dunbar// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s
648620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
748620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
848620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanianextern "C" int printf(...);
948620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
1048620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanianstruct obj{ int a; float b; double d; };
1148620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
1248620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanianvoid foo(obj o) {
1348620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian  printf("%d  %f  %f\n", o.a, o.b, o.d);
1448620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian}
1548620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
1648620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanianint main() {
1748620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian  obj o = obj();
1848620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian  foo(obj());
1948620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian}
2048620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
213b29901b1d106789e04ce8c4cdfebe72b251db4bSean Callanan// CHECK-LP64: callq    __Z3foo3obj
2248620bafe4ba879f96c2d17caefeb79f3fae2eeaFariborz Jahanian
23398e6b90f5e161d520a95cbf34c732a55fd3e476Chris Lattner// CHECK-LP32: calll     __Z3foo3obj
24