summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/windows-struct-abi.c
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-11-24 20:14:29 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-11-24 20:14:29 +0000
commitaca550fdb56231631eb9d7da11e70772f230a8e1 (patch)
tree10fbb709e46e33c49536c325d87448cb99d05bd7 /clang/test/CodeGen/windows-struct-abi.c
parent76ecafd5238d84063053f9f754c2df18c57c4fe2 (diff)
downloadbcm5719-llvm-aca550fdb56231631eb9d7da11e70772f230a8e1.tar.gz
bcm5719-llvm-aca550fdb56231631eb9d7da11e70772f230a8e1.zip
CodeGen: make i686-windows-itanium more similar to msvc
The itanium environment follows the system calling convention for structures. Pass small aggregates via registers. llvm-svn: 222680
Diffstat (limited to 'clang/test/CodeGen/windows-struct-abi.c')
-rw-r--r--clang/test/CodeGen/windows-struct-abi.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/clang/test/CodeGen/windows-struct-abi.c b/clang/test/CodeGen/windows-struct-abi.c
index ec4bab6b47d..4b4a6f1b5db 100644
--- a/clang/test/CodeGen/windows-struct-abi.c
+++ b/clang/test/CodeGen/windows-struct-abi.c
@@ -6,7 +6,7 @@ struct f1 {
struct f1 return_f1(void) { while (1); }
-// CHECK: define void @return_f1(%struct.f1* noalias sret %agg.result)
+// CHECK: define i32 @return_f1()
void receive_f1(struct f1 a0) { }
@@ -19,9 +19,24 @@ struct f2 {
struct f2 return_f2(void) { while (1); }
-// CHECK: define void @return_f2(%struct.f2* noalias sret %agg.result)
+// CHECK: define i64 @return_f2()
void receive_f2(struct f2 a0) { }
// CHECK: define void @receive_f2(%struct.f2* byval align 4 %a0)
+struct f4 {
+ float f;
+ float g;
+ float h;
+ float i;
+};
+
+struct f4 return_f4(void) { while (1); }
+
+// CHECK: define void @return_f4(%struct.f4* noalias sret %agg.result)
+
+void receive_f4(struct f4 a0) { }
+
+// CHECK: define void @receive_f4(%struct.f4* byval align 4 %a0)
+
OpenPOWER on IntegriCloud