diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-03-19 17:03:58 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-03-19 17:03:58 +0000 |
commit | 4c42621966c8dd9e7247d4dfc518dbdd6fbec46b (patch) | |
tree | fa02f4ec50e99fc225fe394c181a803293f42480 /test/CodeGenCXX/cxx1y-sized-deallocation.cpp | |
parent | 5d00c12060d126231439ea6e8806967abdb952bf (diff) |
Revert "Improvement on sized deallocation from r230160"
This reverts commit r230580.
extern_weak functions don't appear to work on Darwin (PR22951), so we'll
need to come up with a new approach.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232731 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/cxx1y-sized-deallocation.cpp')
-rw-r--r-- | test/CodeGenCXX/cxx1y-sized-deallocation.cpp | 46 |
1 files changed, 12 insertions, 34 deletions
diff --git a/test/CodeGenCXX/cxx1y-sized-deallocation.cpp b/test/CodeGenCXX/cxx1y-sized-deallocation.cpp index 647a64097a..1d021a759f 100644 --- a/test/CodeGenCXX/cxx1y-sized-deallocation.cpp +++ b/test/CodeGenCXX/cxx1y-sized-deallocation.cpp @@ -1,6 +1,8 @@ -// RUN: %clang_cc1 -std=c++1y %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKUND +// RUN: %clang_cc1 -std=c++1y %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK-UNSIZED +// RUN: %clang_cc1 -std=c++1y %s -emit-llvm -triple x86_64-linux-gnu -o - -DINLIB | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKUND // RUN: %clang_cc1 -std=c++1y %s -emit-llvm -triple x86_64-linux-gnu -fdefine-sized-deallocation -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKDEF -// RUN: %clang_cc1 -std=c++11 -fsized-deallocation %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKUND +// RUN: %clang_cc1 -std=c++11 -fsized-deallocation %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK-UNSIZED +// RUN: %clang_cc1 -std=c++11 -fsized-deallocation %s -emit-llvm -triple x86_64-linux-gnu -o - -DINLIB | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKUND // RUN: %clang_cc1 -std=c++11 -fsized-deallocation -fdefine-sized-deallocation %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKDEF // RUN: %clang_cc1 -std=c++11 %s -emit-llvm -triple x86_64-linux-gnu -o - | FileCheck %s --check-prefix=CHECK-UNSIZED // RUN: %clang_cc1 -std=c++1y %s -emit-llvm -triple x86_64-linux-gnu -fno-sized-deallocation -o - | FileCheck %s --check-prefix=CHECK-UNSIZED @@ -10,6 +12,11 @@ typedef decltype(sizeof(0)) size_t; +#ifdef INLIB +void operator delete(void *, size_t) noexcept; +void operator delete[](void *, size_t) noexcept; +#endif + typedef int A; struct B { int n; }; struct C { ~C() {} }; @@ -47,92 +54,63 @@ template void del<F>(); D::D() {} // CHECK-LABEL: define weak_odr void @_Z3delIiEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 4) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZdaPv(i8* %{{[^ ]*}}) // -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 4) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZdaPv(i8* %{{[^ ]*}}) // CHECKDEF-LABEL: define linkonce void @_ZdlPvm(i8*, i64) #{{[0-9]+}} comdat // CHECKDEF: call void @_ZdlPv(i8* %0) -// CHECKUND-LABEL: declare extern_weak void @_ZdlPvm(i8* +// CHECKUND-LABEL: declare void @_ZdlPvm(i8* // CHECK-LABEL: define weak_odr void @_Z3delI1BEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 4) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZdaPv(i8* %{{[^ ]*}}) // -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 4) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZdaPv(i8* %{{[^ ]*}}) // CHECK-LABEL: define weak_odr void @_Z3delI1CEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 1) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdaPvm, void (i8*, i64)* null), // CHECK: mul i64 1, %{{[^ ]*}} // CHECK: add i64 %{{[^ ]*}}, 8 // CHECK: call void @_ZdaPvm(i8* %{{[^ ]*}}, i64 %{{[^ ]*}}) -// CHECKUND: call void @_ZdaPv(i8* %{{[^ ]*}}) // -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 1) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdaPvm, void (i8*, i64)* null), // CHECK: mul i64 1, %{{[^ ]*}} // CHECK: add i64 %{{[^ ]*}}, 8 // CHECK: call void @_ZdaPvm(i8* %{{[^ ]*}}, i64 %{{[^ ]*}}) -// CHECKUND: call void @_ZdaPv(i8* %{{[^ ]*}}) // CHECKDEF-LABEL: define linkonce void @_ZdaPvm(i8*, i64) #{{[0-9]+}} comdat // CHECKDEF: call void @_ZdaPv(i8* %0) -// CHECKUND-LABEL: declare extern_weak void @_ZdaPvm(i8* +// CHECKUND-LABEL: declare void @_ZdaPvm(i8* // CHECK-LABEL: define weak_odr void @_Z3delI1DEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 8) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdaPvm, void (i8*, i64)* null), // CHECK: mul i64 8, %{{[^ ]*}} // CHECK: add i64 %{{[^ ]*}}, 8 // CHECK: call void @_ZdaPvm(i8* %{{[^ ]*}}, i64 %{{[^ ]*}}) -// CHECKUND: call void @_ZdaPv(i8* %{{[^ ]*}}) // -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), -// CHECKDEF-NOT: Zdl +// CHECK-NOT: Zdl // CHECK: call void %{{.*}} // CHECK-NOT: Zdl -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdaPvm, void (i8*, i64)* null), // CHECK: mul i64 8, %{{[^ ]*}} // CHECK: add i64 %{{[^ ]*}}, 8 // CHECK: call void @_ZdaPvm(i8* %{{[^ ]*}}, i64 %{{[^ ]*}}) -// CHECKUND: call void @_ZdaPv(i8* %{{[^ ]*}}) // CHECK-LABEL: define weak_odr void @_Z3delI1EEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 1) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZdaPv(i8* %{{[^ ]*}}) // // CHECK: call void @_ZN1EdlEPv(i8* %{{[^ ]*}}) // CHECK: call void @_ZN1EdaEPv(i8* %{{[^ ]*}}) // CHECK-LABEL: define weak_odr void @_Z3delI1FEvv() -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdlPvm, void (i8*, i64)* null), // CHECK: call void @_ZdlPvm(i8* %{{[^ ]*}}, i64 1) -// CHECKUND: call void @_ZdlPv(i8* %{{[^ ]*}}) -// CHECKUND: br i1 icmp ne (void (i8*, i64)* @_ZdaPvm, void (i8*, i64)* null), // CHECK: mul i64 1, %{{[^ ]*}} // CHECK: add i64 %{{[^ ]*}}, 8 // CHECK: call void @_ZdaPvm(i8* %{{[^ ]*}}, i64 %{{[^ ]*}}) -// CHECKUND: call void @_ZdaPv(i8* %{{[^ ]*}}) // // CHECK: call void @_ZN1FdlEPvm(i8* %{{[^ ]*}}, i64 1) // CHECK: mul i64 1, %{{[^ ]*}} |