summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen
diff options
context:
space:
mode:
authorserge-sans-paille <sguelton@redhat.com>2019-12-11 21:30:10 +0100
committerserge-sans-paille <sguelton@redhat.com>2020-01-09 17:31:00 +0100
commitcee4a1c957426e9477c8579ff960c8c2bd4af9e2 (patch)
tree6ae81e86924a355e2ce2fe41118af4f2b71a035a /clang/test/CodeGen
parentd27a15fed79c8e8484825ce6c3ce1682daeb1547 (diff)
downloadbcm5719-llvm-cee4a1c957426e9477c8579ff960c8c2bd4af9e2.tar.gz
bcm5719-llvm-cee4a1c957426e9477c8579ff960c8c2bd4af9e2.zip
Improve support of GNU mempcpy
- Lower to the memcpy intrinsic - Raise warnings when size/bounds are known Differential Revision: https://reviews.llvm.org/D71374
Diffstat (limited to 'clang/test/CodeGen')
-rw-r--r--clang/test/CodeGen/mempcpy-libcall.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CodeGen/mempcpy-libcall.c b/clang/test/CodeGen/mempcpy-libcall.c
new file mode 100644
index 00000000000..b88f494f164
--- /dev/null
+++ b/clang/test/CodeGen/mempcpy-libcall.c
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -emit-llvm < %s| FileCheck %s
+
+typedef __SIZE_TYPE__ size_t;
+
+void *mempcpy(void *, void const *, size_t);
+
+char *test(char *d, char *s, size_t n) {
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.*}} %[[REG1:[^ ]+]], i8* {{.*}} %1, i64 %[[REG2:[^ ]+]], i1 false)
+ // CHECK-NEXT: %[[REGr:[^ ]+]] = getelementptr inbounds i8, i8* %[[REG1]], i64 %[[REG2]]
+ // CHECK-NEXT: ret i8* %[[REGr]]
+ return mempcpy(d, s, n);
+}
OpenPOWER on IntegriCloud