1*67e74705SXin Li // REQUIRES: x86-registered-target 2*67e74705SXin Li // RUN: c-index-test -write-pch %t_linux.ast -target i686-pc-linux-gnu %s 3*67e74705SXin Li // RUN: c-index-test -test-print-mangle %t_linux.ast | FileCheck %s --check-prefix=ITANIUM 4*67e74705SXin Li 5*67e74705SXin Li // RUN: c-index-test -write-pch %t_macho.ast -target x86_64-apple-darwin %s 6*67e74705SXin Li // RUN: c-index-test -test-print-mangle %t_macho.ast | FileCheck %s --check-prefix=MACHO 7*67e74705SXin Li 8*67e74705SXin Li // RUN: c-index-test -write-pch %t_msft.ast -target i686-pc-win32 %s 9*67e74705SXin Li // RUN: c-index-test -test-print-mangle %t_msft.ast | FileCheck %s --check-prefix=MICROSOFT 10*67e74705SXin Li 11*67e74705SXin Li int foo(int, int); 12*67e74705SXin Li // ITANIUM: mangled=_Z3fooii 13*67e74705SXin Li // MACHO: mangled=__Z3fooii 14*67e74705SXin Li // MICROSOFT: mangled=?foo@@YAHHH 15*67e74705SXin Li 16*67e74705SXin Li int foo(float, int); 17*67e74705SXin Li // ITANIUM: mangled=_Z3foofi 18*67e74705SXin Li // MACHO: mangled=__Z3foofi 19*67e74705SXin Li // MICROSOFT: mangled=?foo@@YAHMH 20*67e74705SXin Li 21*67e74705SXin Li struct S { 22*67e74705SXin Li int x, y; 23*67e74705SXin Li }; 24*67e74705SXin Li // ITANIUM: StructDecl{{.*}}mangled=] 25*67e74705SXin Li // MACHO: StructDecl{{.*}}mangled=] 26*67e74705SXin Li // MICROSOFT: StructDecl{{.*}}mangled=] 27*67e74705SXin Li 28*67e74705SXin Li int foo(S, S&); 29*67e74705SXin Li // ITANIUM: mangled=_Z3foo1SRS_ 30*67e74705SXin Li // MACHO: mangled=__Z3foo1SRS_ 31*67e74705SXin Li // MICROSOFT: mangled=?foo@@YAHUS 32*67e74705SXin Li 33*67e74705SXin Li extern "C" int foo(int); 34*67e74705SXin Li // ITANIUM: mangled=foo 35*67e74705SXin Li // MACHO: mangled=_foo 36*67e74705SXin Li // MICROSOFT: mangled=_foo 37