summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorTimur Iskhodzhanov <timurrrr@google.com>2013-10-08 20:09:50 +0000
committerTimur Iskhodzhanov <timurrrr@google.com>2013-10-08 20:09:50 +0000
commitc7113073dd2feba5e70301d04b270b0fa8e4cfa3 (patch)
tree206b80e000e8a173438f834b29988bbdc6128f27 /clang/test
parent2f84f46fef4cf1140b07e893dad3d3fd9a60ab40 (diff)
downloadbcm5719-llvm-c7113073dd2feba5e70301d04b270b0fa8e4cfa3.tar.gz
bcm5719-llvm-c7113073dd2feba5e70301d04b270b0fa8e4cfa3.zip
Revert 192220 as it fails on an assertion
llvm-svn: 192225
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-thunks.cpp118
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp8
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp19
-rw-r--r--clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp3
4 files changed, 0 insertions, 148 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-thunks.cpp b/clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
deleted file mode 100644
index 091ef3274b9..00000000000
--- a/clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// RUN: %clang_cc1 -fno-rtti -emit-llvm %s -o - -cxx-abi microsoft -triple=i386-pc-win32 >%t 2>&1
-// RUN: FileCheck --check-prefix=MANGLING %s < %t
-// RUN: FileCheck --check-prefix=XMANGLING %s < %t
-// RUN: FileCheck --check-prefix=CODEGEN %s < %t
-// RUN: %clang_cc1 -fno-rtti -emit-llvm %s -o - -cxx-abi microsoft -triple=x86_64-pc-win32 2>&1 | FileCheck --check-prefix=MANGLING-X64 %s
-
-void foo(void *);
-
-struct A {
- virtual ~A();
- virtual void public_f();
- // Make sure we don't emit unneeded thunks:
- // XMANGLING-NOT: @"\01?public_f@A@@QAEXXZ"
- protected:
- virtual void protected_f();
- private:
- virtual void private_f();
-};
-
-struct B {
- virtual ~B();
- virtual void public_f();
- protected:
- virtual void protected_f();
- private:
- virtual void private_f();
-};
-
-
-struct C : A, B {
- C();
-
- virtual ~C();
- // MANGLING-DAG: @"\01??1C@@UAE@XZ"
- // MANGLING-DAG: @"\01??_GC@@UAEPAXI@Z"
- // MANGLING-DAG: @"\01??_EC@@W3AEPAXI@Z"
- // MANGLING-X64-DAG: @"\01??1C@@UEAA@XZ"
- // MANGLING-X64-DAG: @"\01??_GC@@UEAAPEAXI@Z"
- // MANGLING-X64-DAG: @"\01??_EC@@W7EAAPEAXI@Z"
-
- // Overrides public_f() of two subobjects with distinct vfptrs, thus needs a thunk.
- virtual void public_f();
- // MANGLING-DAG: @"\01?public_f@C@@UAEXXZ"
- // MANGLING-DAG: @"\01?public_f@C@@W3AEXXZ"
- // MANGLING-X64-DAG: @"\01?public_f@C@@UEAAXXZ"
- // MANGLING-X64-DAG: @"\01?public_f@C@@W7EAAXXZ"
- protected:
- virtual void protected_f();
- // MANGLING-DAG: @"\01?protected_f@C@@MAEXXZ"
- // MANGLING-DAG: @"\01?protected_f@C@@O3AEXXZ"
- // MANGLING-X64-DAG: @"\01?protected_f@C@@MEAAXXZ"
- // MANGLING-X64-DAG: @"\01?protected_f@C@@O7EAAXXZ"
-
- private:
- virtual void private_f();
- // MANGLING-DAG: @"\01?private_f@C@@EAEXXZ"
- // MANGLING-DAG: @"\01?private_f@C@@G3AEXXZ"
- // MANGLING-X64-DAG: @"\01?private_f@C@@EEAAXXZ"
- // MANGLING-X64-DAG: @"\01?private_f@C@@G7EAAXXZ"
-};
-
-C::C() {} // Emits vftable and forces thunk generation.
-
-// CODEGEN: define weak x86_thiscallcc void @"\01??_EC@@W3AEPAXI@Z"(%struct.C* %this, i32 %should_call_delete)
-// CODEGEN: getelementptr inbounds i8* {{.*}}, i64 -4
-// FIXME: should actually call _EC, not _GC.
-// CODEGEN: call x86_thiscallcc void @"\01??_GC@@UAEPAXI@Z"
-// CODEGEN: ret
-
-// CODEGEN: define weak x86_thiscallcc void @"\01?public_f@C@@W3AEXXZ"(%struct.C*
-// CODEGEN: getelementptr inbounds i8* {{.*}}, i64 -4
-// CODEGEN: call x86_thiscallcc void @"\01?public_f@C@@UAEXXZ"(%struct.C*
-// CODEGEN: ret
-
-void zoo(C* obj) {
- delete obj;
-}
-
-struct D {
- virtual B* goo();
-};
-
-struct E : D {
- virtual C* goo();
- // MANGLING-DAG: @"\01?goo@E@@UAEPAUC@@XZ"
- // MANGLING-DAG: @"\01?goo@E@@QAEPAUB@@XZ"
- // MANGLING-X64-DAG: @"\01?goo@E@@UEAAPEAUC@@XZ"
- // MANGLING-X64-DAG: @"\01?goo@E@@QEAAPEAUB@@XZ"
-};
-
-E e; // Emits vftable and forces thunk generation.
-
-// CODEGEN: define weak x86_thiscallcc %struct.C* @"\01?goo@E@@QAEPAUB@@XZ"
-// CODEGEN: call x86_thiscallcc %struct.C* @"\01?goo@E@@UAEPAUC@@XZ"
-// CODEGEN: getelementptr inbounds i8* {{.*}}, i64 4
-// CODEGEN: ret
-
-struct F : virtual A, virtual B {
- virtual ~F();
-};
-
-F f; // Just make sure we don't crash, e.g. mangling the complete dtor.
-
-struct G : C { };
-
-struct H : E {
- virtual G* goo();
- // MANGLING-DAG: @"\01?goo@H@@UAEPAUG@@XZ"
- // MANGLING-DAG: @"\01?goo@H@@QAEPAUB@@XZ"
- // MANGLING-DAG: @"\01?goo@H@@QAEPAUC@@XZ"
- // MANGLING-X64-DAG: @"\01?goo@H@@UEAAPEAUG@@XZ"
- // MANGLING-X64-DAG: @"\01?goo@H@@QEAAPEAUB@@XZ"
- // MANGLING-X64-DAG: @"\01?goo@H@@QEAAPEAUC@@XZ"
-};
-
-H h;
-
-// FIXME: Write vtordisp adjusting thunk tests
diff --git a/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
index 3805243c6a4..064a3ffda91 100644
--- a/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
+++ b/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
@@ -93,11 +93,3 @@ void call_vbase_bar(B *obj) {
//
// CHECK: ret void
}
-
-struct C : B {
- C();
- // has an implicit vdtor.
-};
-
-// Used to crash on an assertion.
-C::C() {}
diff --git a/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp
index 8dad4dd7794..a0436c8e810 100644
--- a/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp
+++ b/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance.cpp
@@ -18,7 +18,6 @@
// RUN: FileCheck --check-prefix=RET-THUNKS-Test3 %s < %t
// RUN: FileCheck --check-prefix=RET-THUNKS-Test4 %s < %t
// RUN: FileCheck --check-prefix=RET-THUNKS-Test5 %s < %t
-// RUN: FileCheck --check-prefix=RET-THUNKS-Test6 %s < %t
// RUN: FileCheck --check-prefix=MANGLING %s < %t
@@ -459,22 +458,4 @@ struct Test5 : Ret1, Test1 {
};
Test5 t5;
-
-struct Ret3 : this_adjustment::Test1 { };
-
-struct Test6 : Test1 {
- virtual Ret3* foo();
- // RET-THUNKS-Test6: VFTable for 'return_adjustment::Ret1' in 'return_adjustment::Test1' in 'return_adjustment::Test6' (4 entries).
- // RET-THUNKS-Test6-NEXT: 0 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
- // RET-THUNKS-Test6-NEXT: [return adjustment: 4 non-virtual]
- // RET-THUNKS-Test6-NEXT: 1 | void return_adjustment::Ret1::z()
- // RET-THUNKS-Test6-NEXT: 2 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
- // RET-THUNKS-Test6-NEXT: 3 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
-
- // RET-THUNKS-Test6: VFTable indices for 'return_adjustment::Test6' (1 entries).
- // RET-THUNKS-Test6-NEXT: 3 | return_adjustment::Ret3 *return_adjustment::Test6::foo()
-};
-
-Test6 t6;
-
}
diff --git a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
index 4a7f5da15ef..24872609d52 100644
--- a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
+++ b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
@@ -154,9 +154,6 @@ struct X: virtual C {
// TEST4-NOT: VFTable indices for 'Test4::X'
// MANGLING-DAG: @"\01??_7X@Test4@@6B@"
-
- // Also check the mangling of the thunk.
- // MANGLING-DAG: define weak x86_thiscallcc void @"\01?f@C@@WPPPPPPPE@AEXXZ"
};
X x;
OpenPOWER on IntegriCloud