1b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s 2b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola 3b6932692234eba2472ef85a38434496e9342fd38Rafael Espindolavoid __attribute__((fastcall)) foo1(int &y); 4b6932692234eba2472ef85a38434496e9342fd38Rafael Espindolavoid bar1(int &y) { 593ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin // CHECK-LABEL: define void @_Z4bar1Ri 6ef8225444452a1486bd721f3285301fe84643b00Stephen Hines // CHECK: call x86_fastcallcc void @_Z4foo1Ri(i32* inreg nonnull % 7b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola foo1(y); 8b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola} 9b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola 10b6932692234eba2472ef85a38434496e9342fd38Rafael Espindolastruct S1 { 11b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola int x; 12b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola S1(const S1 &y); 13b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola}; 14b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola 15b6932692234eba2472ef85a38434496e9342fd38Rafael Espindolavoid __attribute__((fastcall)) foo2(S1 a, int b); 16b6932692234eba2472ef85a38434496e9342fd38Rafael Espindolavoid bar2(S1 a, int b) { 1793ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin // CHECK-LABEL: define void @_Z4bar22S1i 18b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola // CHECK: call x86_fastcallcc void @_Z4foo22S1i(%struct.S1* inreg %{{.*}}, i32 inreg % 19b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola foo2(a, b); 20b6932692234eba2472ef85a38434496e9342fd38Rafael Espindola} 21