summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/x86_64-arguments-win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/x86_64-arguments-win32.c')
-rw-r--r--test/CodeGen/x86_64-arguments-win32.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/x86_64-arguments-win32.c b/test/CodeGen/x86_64-arguments-win32.c
index 5aea7fc..7731ead 100644
--- a/test/CodeGen/x86_64-arguments-win32.c
+++ b/test/CodeGen/x86_64-arguments-win32.c
@@ -14,3 +14,18 @@ void f3(short a) {}
// CHECK-LABEL: define void @f4(i16 %a)
void f4(unsigned short a) {}
+
+// For ABI compatibility with ICC, _Complex should be passed/returned
+// as if it were a struct with two elements.
+
+// CHECK-LABEL: define void @f5(i64 %a.coerce)
+void f5(_Complex float a) {}
+
+// CHECK-LABEL: define void @f6({ double, double }* %a)
+void f6(_Complex double a) {}
+
+// CHECK-LABEL: define i64 @f7()
+_Complex float f7() { return 1.0; }
+
+// CHECK-LABEL: define void @f8({ double, double }* noalias sret %agg.result)
+_Complex double f8() { return 1.0; }
OpenPOWER on IntegriCloud