xref: /llvm-project/clang/test/CodeGenCXX/call-arg-zero-temp.cpp (revision 0acd8a756133c48b9342444a5d32cac3fbcc9911)
1*0acd8a75SNAKAMURA Takumi // REQUIRES: x86-registered-target
28fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -triple x86_64-apple-darwin -S %s -o %t-64.s
319ae1175STim Northover // RUN: FileCheck -check-prefix CHECK-LP64 --input-file=%t-64.s %s
48fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -triple i386-apple-darwin -S %s -o %t-32.s
519ae1175STim Northover // RUN: FileCheck -check-prefix CHECK-LP32 --input-file=%t-32.s %s
6e4d94ceeSFariborz Jahanian 
7e4d94ceeSFariborz Jahanian 
8e4d94ceeSFariborz Jahanian extern "C" int printf(...);
9e4d94ceeSFariborz Jahanian 
10e4d94ceeSFariborz Jahanian struct obj{ int a; float b; double d; };
11e4d94ceeSFariborz Jahanian 
foo(obj o)12e4d94ceeSFariborz Jahanian void foo(obj o) {
13e4d94ceeSFariborz Jahanian   printf("%d  %f  %f\n", o.a, o.b, o.d);
14e4d94ceeSFariborz Jahanian }
15e4d94ceeSFariborz Jahanian 
main()16e4d94ceeSFariborz Jahanian int main() {
17e4d94ceeSFariborz Jahanian   obj o = obj();
18e4d94ceeSFariborz Jahanian   foo(obj());
19e4d94ceeSFariborz Jahanian }
20e4d94ceeSFariborz Jahanian 
2112ca3f46SSean Callanan // CHECK-LP64: callq    __Z3foo3obj
22e4d94ceeSFariborz Jahanian 
23775e635bSChris Lattner // CHECK-LP32: calll     __Z3foo3obj
24