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