diff options
author | Dan Gohman <gohman@apple.com> | 2012-09-28 21:58:29 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2012-09-28 21:58:29 +0000 |
commit | b22c7dc707cf3770ff3b5e5f11f11fd0aaa06d9b (patch) | |
tree | 229206e36c039731daa063a9a194205dc31f904b /test/CodeGen/tbaa-struct.cpp | |
parent | 72ab27732ea7a42d756a1e79727f86fbe391b42b (diff) |
Add basic support for adding !tbaa.struct metadata on llvm.memcpy calls for
struct assignment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164853 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/tbaa-struct.cpp')
-rw-r--r-- | test/CodeGen/tbaa-struct.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGen/tbaa-struct.cpp b/test/CodeGen/tbaa-struct.cpp new file mode 100644 index 0000000000..6bff3370bf --- /dev/null +++ b/test/CodeGen/tbaa-struct.cpp @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -emit-llvm -o - -O1 %s | FileCheck %s +// +// Check that we generate !tbaa.struct metadata for struct copies. +struct A { + short s; + int i; + char c; + int j; +}; + +void copy(struct A *a, struct A *b) { + *a = *b; +} + +// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* %{{.*}}, i8* %{{.*}}, i64 16, i32 4, i1 false), !tbaa.struct [[TS:!.*]] +// CHECK: [[TS]] = metadata !{i64 0, i64 2, metadata !{{.*}}, i64 4, i64 4, metadata !{{.*}}, i64 8, i64 1, metadata !{{.*}}, i64 12, i64 4, metadata !{{.*}}} |