1*67e74705SXin Li // RUN: %clang_cc1 -triple i686-windows-itanium -emit-llvm -o - %s | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li struct f1 { 4*67e74705SXin Li float f; 5*67e74705SXin Li }; 6*67e74705SXin Li return_f1(void)7*67e74705SXin Listruct f1 return_f1(void) { while (1); } 8*67e74705SXin Li 9*67e74705SXin Li // CHECK: define i32 @return_f1() 10*67e74705SXin Li receive_f1(struct f1 a0)11*67e74705SXin Livoid receive_f1(struct f1 a0) { } 12*67e74705SXin Li 13*67e74705SXin Li // CHECK: define void @receive_f1(float %a0.0) 14*67e74705SXin Li 15*67e74705SXin Li struct f2 { 16*67e74705SXin Li float f; 17*67e74705SXin Li float g; 18*67e74705SXin Li }; 19*67e74705SXin Li return_f2(void)20*67e74705SXin Listruct f2 return_f2(void) { while (1); } 21*67e74705SXin Li 22*67e74705SXin Li // CHECK: define i64 @return_f2() 23*67e74705SXin Li receive_f2(struct f2 a0)24*67e74705SXin Livoid receive_f2(struct f2 a0) { } 25*67e74705SXin Li 26*67e74705SXin Li // CHECK: define void @receive_f2(float %a0.0, float %a0.1) 27*67e74705SXin Li 28*67e74705SXin Li struct f4 { 29*67e74705SXin Li float f; 30*67e74705SXin Li float g; 31*67e74705SXin Li float h; 32*67e74705SXin Li float i; 33*67e74705SXin Li }; 34*67e74705SXin Li return_f4(void)35*67e74705SXin Listruct f4 return_f4(void) { while (1); } 36*67e74705SXin Li 37*67e74705SXin Li // CHECK: define void @return_f4(%struct.f4* noalias sret %agg.result) 38*67e74705SXin Li receive_f4(struct f4 a0)39*67e74705SXin Livoid receive_f4(struct f4 a0) { } 40*67e74705SXin Li 41*67e74705SXin Li // CHECK: define void @receive_f4(float %a0.0, float %a0.1, float %a0.2, float %a0.3) 42*67e74705SXin Li 43