blob: c63c7368524a4285536233f9b0fa70c689a253a6 [file] [log] [blame]
Kostya Serebryany8cb4a072012-03-26 17:03:51 +00001// RUN: %clang_cc1 -emit-llvm -o - -O1 %s | FileCheck %s
2// Check that we generate TBAA for vtable pointer loads and stores.
3struct A {
4 virtual int foo() const ;
5 virtual ~A();
6};
7
8void CreateA() {
9 new A;
10}
11
12void CallFoo(A *a) {
13 a->foo();
14}
15
16// CHECK: %vtable = load {{.*}} !tbaa !0
17// CHECK: store {{.*}} !tbaa !0
18// CHECK: !0 = metadata !{metadata !"vtable pointer", metadata !1}
19// CHECK: !1 = metadata !{metadata !"Simple C/C++ TBAA", null}