diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-08 20:09:50 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2013-10-08 20:09:50 +0000 |
commit | c7113073dd2feba5e70301d04b270b0fa8e4cfa3 (patch) | |
tree | 206b80e000e8a173438f834b29988bbdc6128f27 /clang/test | |
parent | 2f84f46fef4cf1140b07e893dad3d3fd9a60ab40 (diff) | |
download | bcm5719-llvm-c7113073dd2feba5e70301d04b270b0fa8e4cfa3.tar.gz bcm5719-llvm-c7113073dd2feba5e70301d04b270b0fa8e4cfa3.zip |
Revert 192220 as it fails on an assertion
llvm-svn: 192225
Diffstat (limited to 'clang/test')
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; |