17 lines · c
1// RUN: %clang_cc1 -verify -emit-llvm -o- %s -isystem %S -DWITH_DECL | FileCheck --check-prefix=CHECK-WITH-DECL %s2// RUN: %clang_cc1 -verify -emit-llvm -o- %s -isystem %S -UWITH_DECL | FileCheck --check-prefix=CHECK-NO-DECL %s3// RUN: %clang_cc1 -verify -emit-llvm -o- %s -isystem %S -disable-llvm-passes -DWITH_SELF_REFERENCE_DECL | FileCheck --check-prefix=CHECK-SELF-REF-DECL %s4//5// CHECK-WITH-DECL-NOT: @llvm.memcpy6// CHECK-NO-DECL: @llvm.memcpy7// CHECK-SELF-REF-DECL-LABEL: define {{.*}}ptr @memcpy.inline8// CHECK-SELF-REF-DECL: @llvm.memcpy.{{.*}}(9//10#include <memcpy-nobuiltin.inc>11void test(void *dest, void const *from, size_t n) {12 memcpy(dest, from, n);13 14 static char buffer[1];15 memcpy(buffer, from, 2); // expected-warning {{'memcpy' will always overflow; destination buffer has size 1, but size argument is 2}}16}17