diff options
| author | Manuel Klimek <klimek@google.com> | 2015-06-11 07:54:35 +0000 | 
|---|---|---|
| committer | Manuel Klimek <klimek@google.com> | 2015-06-11 07:54:35 +0000 | 
| commit | aad3b8486d886f10a8fb5f16a21111e3e8dfdfa5 (patch) | |
| tree | 12c2dc2bbc9aefde09e4fcb23904d6706c8d2bb9 /clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp | |
| parent | af37ad19a9467e1eecd98e8f4c2ab9b94451bd19 (diff) | |
| download | bcm5719-llvm-aad3b8486d886f10a8fb5f16a21111e3e8dfdfa5.tar.gz bcm5719-llvm-aad3b8486d886f10a8fb5f16a21111e3e8dfdfa5.zip  | |
Revert "[MS ABI] Allow fastcall member function pointers to get CodeGen'd"
Revert "[MS ABI] Allow memfn pointers with unconvertible types to be formed"
This reverts r239499 and r239503; the former breaks tests [1] and the
latter is based on the former.
[1]
http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/4473/testReport/Clang/CodeGenCXX/microsoft_abi_virtual_member_pointers_cpp/
llvm-svn: 239511
Diffstat (limited to 'clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp | 23 | 
1 files changed, 2 insertions, 21 deletions
diff --git a/clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp b/clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp index eb5f90dc86b..f6f75835c65 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -std=c++11 -fno-rtti -emit-llvm -triple=i386-pc-win32 %s -o - | FileCheck %s --check-prefix=CHECK32 -// RUN: %clang_cc1 -std=c++11 -fno-rtti -emit-llvm -triple=x86_64-pc-win32 %s -o - | FileCheck %s --check-prefix=CHECK64 +// RUN: %clang_cc1 -fno-rtti -emit-llvm -triple=i386-pc-win32 %s -o - | FileCheck %s --check-prefix=CHECK32 +// RUN: %clang_cc1 -fno-rtti -emit-llvm -triple=x86_64-pc-win32 %s -o - | FileCheck %s --check-prefix=CHECK64  struct S {    int x, y, z; @@ -13,15 +13,12 @@ struct U {    U(const U &);  }; -struct B; -  struct C {    virtual void foo();    virtual int bar(int, double);    virtual S baz(int);    virtual S qux(U);    virtual void thud(...); -  virtual void (B::*plugh())();  };  namespace { @@ -50,8 +47,6 @@ void f() {    void (C::*ptr6)(...);    ptr6 = &C::thud; -  auto ptr7 = &C::plugh; -  // CHECK32-LABEL: define void @"\01?f@@YAXXZ"()  // CHECK32: store i8* bitcast (void (%struct.C*, ...)* @"\01??_9C@@$BA@AE" to i8*), i8** %ptr @@ -172,18 +167,4 @@ void f() {  // CHECK64: ret void  // CHECK64: } -// CHECK32: define linkonce_odr x86_thiscallcc void @"\01??_9C@@$BBE@AE"(%struct.C* %this, ...) {{.*}} comdat align 2 { -// CHECK32: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %vtable, i64 5 -// CHECK32: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]] -// CHECK32: musttail call x86_thiscallcc void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...) -// CHECK32: ret void -// CHECK32: } - -// CHECK64: define linkonce_odr void @"\01??_9C@@$BCI@AA"(%struct.C* %this, ...) {{.*}} comdat align 2 { -// CHECK64: [[VPTR:%.*]] = getelementptr inbounds void (%struct.C*, ...)*, void (%struct.C*, ...)** %vtable, i64 5 -// CHECK64: [[CALLEE:%.*]] = load void (%struct.C*, ...)*, void (%struct.C*, ...)** [[VPTR]] -// CHECK64: musttail call void (%struct.C*, ...) [[CALLEE]](%struct.C* %{{.*}}, ...) -// CHECK64: ret void -// CHECK64: } -  // CHECK32: #[[ATTR]] = {{{.*}}"thunk"{{.*}}}  | 

