1e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// RUN: %clang_cc1 -triple x86_64-unknown-freebsd10.0 -emit-llvm < %s | FileCheck -check-prefix=FREEBSD %s
2e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// RUN: %clang_cc1 -triple x86_64-pc-win32 -emit-llvm < %s | FileCheck -check-prefix=WIN64 %s
3e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis
4e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davisvoid __attribute__((ms_abi)) f1(void);
5e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davisvoid __attribute__((sysv_abi)) f2(void);
6e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davisvoid f3(void) {
7e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// FREEBSD: define void @f3()
8e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// WIN64: define void @f3()
9e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis  f1();
10e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// FREEBSD: call x86_64_win64cc void @f1()
11e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// WIN64: call void @f1()
12e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis  f2();
13e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// FREEBSD: call void @f2()
14e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// WIN64: call x86_64_sysvcc void @f2()
15e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis}
16e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// FREEBSD: declare x86_64_win64cc void @f1()
17e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// FREEBSD: declare void @f2()
18e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// WIN64: declare void @f1()
19e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis// WIN64: declare x86_64_sysvcc void @f2()
20e8519c31a6ef853b627d557702ac1890f18ce2c9Charles Davis
21