[PATCH] D29972: Make Lit tests C++11 compatible - accessible destructors
Charles Li via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 14 16:02:17 PST 2017
tigerleapgorge created this revision.
Herald added a subscriber: mehdi_amini.
I am continuing to make Lit tests C++11 compatible.
This patch contains 2 tests previously in https://reviews.llvm.org/D20710.
In both tests, I have made the base class destructors “protected” so they are accessible to derived classes.
In C++11, an inaccessible destructor is considered implicitly deleted and this causes the following type of compilation errors.
f.h:82:13: error: deleted function '~C3' cannot override a non-deleted function
C3:
^
f.h:61:15: note: overridden virtual function is here
virtual ~
^
f.h:83:15: note: destructor of 'C3' is implicitly deleted because base class '(anonymous namespace)::AAA' has an inaccessible destructor
AAA {
^
https://reviews.llvm.org/D29972
Files:
test/CodeGenCXX/debug-info-use-after-free.cpp
test/CodeGenCXX/dynamic-cast-hint.cpp
Index: test/CodeGenCXX/dynamic-cast-hint.cpp
===================================================================
--- test/CodeGenCXX/dynamic-cast-hint.cpp
+++ test/CodeGenCXX/dynamic-cast-hint.cpp
@@ -1,7 +1,9 @@
// RUN: %clang_cc1 -triple x86_64-apple-darwin12 -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin12 -emit-llvm -std=c++98 -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-apple-darwin12 -emit-llvm -std=c++11 -o - %s | FileCheck %s
-class A { virtual ~A() {} };
-class B { virtual ~B() {} };
+class A { protected: virtual ~A() {} };
+class B { protected: virtual ~B() {} };
class C : A { char x; };
class D : public A { short y; };
Index: test/CodeGenCXX/debug-info-use-after-free.cpp
===================================================================
--- test/CodeGenCXX/debug-info-use-after-free.cpp
+++ test/CodeGenCXX/debug-info-use-after-free.cpp
@@ -1,4 +1,6 @@
// RUN: %clang_cc1 -debug-info-kind=limited -triple %itanium_abi_triple -emit-llvm-only %s
+// RUN: %clang_cc1 -debug-info-kind=limited -triple %itanium_abi_triple -emit-llvm-only -std=c++98 %s
+// RUN: %clang_cc1 -debug-info-kind=limited -triple %itanium_abi_triple -emit-llvm-only -std=c++11 %s
// Check that we don't crash.
// PR12305, PR12315
@@ -233,6 +235,7 @@
namespace {
class
AAA {
+protected:
virtual ~
AAA () {
}};
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29972.88463.patch
Type: text/x-patch
Size: 1397 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170215/d0fcc191/attachment.bin>
More information about the cfe-commits
mailing list