| Daniel Dunbar | 98303b9 | 2009-09-13 08:03:58 +0000 | [diff] [blame] | 1 | // RUX: iphone-llvm-gcc -arch armv7 -flto -S -o - %s | FileCheck %s |
| Daniel Dunbar | 018ba5a | 2009-09-14 00:35:03 +0000 | [diff] [blame^] | 2 | // RUN: clang-cc -triple armv7-apple-darwin9 -target-abi=apcs-gnu -emit-llvm -w -o - %s | FileCheck %s |
| Daniel Dunbar | 5e7bace | 2009-09-12 01:00:39 +0000 | [diff] [blame] | 3 | |
| 4 | // CHECK: define arm_apcscc signext i8 @f0() |
| 5 | char f0(void) { |
| 6 | return 0; |
| 7 | } |
| Daniel Dunbar | 98303b9 | 2009-09-13 08:03:58 +0000 | [diff] [blame] | 8 | |
| 9 | // CHECK: define arm_apcscc i8 @f1() |
| 10 | struct s1 { char f0; }; |
| 11 | struct s1 f1(void) {} |
| 12 | |
| 13 | // CHECK: define arm_apcscc i16 @f2() |
| 14 | struct s2 { short f0; }; |
| 15 | struct s2 f2(void) {} |
| 16 | |
| 17 | // CHECK: define arm_apcscc i32 @f3() |
| 18 | struct s3 { int f0; }; |
| 19 | struct s3 f3(void) {} |
| 20 | |
| 21 | // CHECK: define arm_apcscc i32 @f4() |
| 22 | struct s4 { struct s4_0 { int f0; } f0; }; |
| 23 | struct s4 f4(void) {} |
| 24 | |
| 25 | // CHECK: define arm_apcscc void @f5( |
| 26 | // CHECK: struct.s5* noalias sret |
| 27 | struct s5 { struct { } f0; int f1; }; |
| 28 | struct s5 f5(void) {} |
| 29 | |
| 30 | // CHECK: define arm_apcscc void @f6( |
| 31 | // CHECK: struct.s6* noalias sret |
| 32 | struct s6 { int f0[1]; }; |
| 33 | struct s6 f6(void) {} |
| 34 | |
| 35 | // CHECK: define arm_apcscc void @f7() |
| 36 | struct s7 { struct { int : 0; } f0; }; |
| 37 | struct s7 f7(void) {} |
| 38 | |
| 39 | // CHECK: define arm_apcscc void @f8( |
| 40 | // CHECK: struct.s8* noalias sret |
| 41 | struct s8 { struct { int : 0; } f0[1]; }; |
| 42 | struct s8 f8(void) {} |
| 43 | |
| 44 | // CHECK: define arm_apcscc i32 @f9() |
| 45 | struct s9 { int f0; int : 0; }; |
| 46 | struct s9 f9(void) {} |
| 47 | |
| 48 | // CHECK: define arm_apcscc i32 @f10() |
| 49 | struct s10 { int f0; int : 0; int : 0; }; |
| 50 | struct s10 f10(void) {} |
| 51 | |
| 52 | // CHECK: define arm_apcscc void @f11( |
| 53 | // CHECK: struct.s10* noalias sret |
| 54 | struct s11 { int : 0; int f0; }; |
| 55 | struct s11 f11(void) {} |
| 56 | |
| 57 | // CHECK: define arm_apcscc i32 @f12() |
| 58 | union u12 { char f0; short f1; int f2; }; |
| 59 | union u12 f12(void) {} |