155fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman// RUN: %clang_cc1 -w -triple i386-pc-win32 -emit-llvm -o - %s | FileCheck %s 255fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 393ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i64 @f1_1() 493ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define void @f1_2(%struct.s1* byval align 4 %a0) 555fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s1 { 655fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman int a; 755fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman int b; 855fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 955fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s1 f1_1(void) { while (1) {} } 1055fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanvoid f1_2(struct s1 a0) {} 1155fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 1293ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i32 @f2_1() 1355fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s2 { 1455fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman short a; 1555fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman short b; 1655fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 1755fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s2 f2_1(void) { while (1) {} } 1855fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 1993ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i16 @f3_1() 2055fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s3 { 2155fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman char a; 2255fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman char b; 2355fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 2455fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s3 f3_1(void) { while (1) {} } 2555fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 2693ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i8 @f4_1() 2755fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s4 { 2855fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman char a:4; 2955fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman char b:4; 3055fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 3155fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s4 f4_1(void) { while (1) {} } 3255fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 3393ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i64 @f5_1() 3493ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define void @f5_2(%struct.s5* byval align 4) 3555fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s5 { 3655fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman double a; 3755fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 3855fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s5 f5_1(void) { while (1) {} } 3955fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanvoid f5_2(struct s5 a0) {} 4055fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 4193ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define i32 @f6_1() 4293ab6bf534fb6c26563c00f28a8fc5581bb71dfdStephen Lin// CHECK-LABEL: define void @f6_2(%struct.s6* byval align 4 %a0) 4355fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s6 { 4455fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman float a; 4555fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman}; 4655fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanstruct s6 f6_1(void) { while (1) {} } 4755fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedmanvoid f6_2(struct s6 a0) {} 4855fc7e2b8005ba87a81664d065e9b9e2fff1b1afEli Friedman 49