aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/builtin-memfns.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/builtin-memfns.c')
-rw-r--r--test/CodeGen/builtin-memfns.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/builtin-memfns.c b/test/CodeGen/builtin-memfns.c
index 48626774531d..27004426819e 100644
--- a/test/CodeGen/builtin-memfns.c
+++ b/test/CodeGen/builtin-memfns.c
@@ -3,6 +3,8 @@
typedef __WCHAR_TYPE__ wchar_t;
typedef __SIZE_TYPE__ size_t;
+void *memcpy(void *, void const *, size_t);
+
// CHECK: @test1
// CHECK: call void @llvm.memset.p0i8.i32
// CHECK: call void @llvm.memset.p0i8.i32
@@ -100,3 +102,19 @@ void test10() {
__builtin_wmemmove(&dest, &src, 4);
}
+// CHECK-LABEL: @test11
+void test11() {
+ typedef struct { int a; } b;
+ int d;
+ b e;
+ // CHECK: call void @llvm.memcpy{{.*}}(
+ memcpy(&d, (char *)&e.a, sizeof(e));
+}
+
+// CHECK-LABEL: @test12
+extern char dest_array[];
+extern char src_array[];
+void test12() {
+ // CHECK: call void @llvm.memcpy{{.*}}(
+ memcpy(&dest_array, &dest_array, 2);
+}