From fda458c2df6c282a4fbe335157676f7fa4117021 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 17 Oct 2012 05:15:58 +0000 Subject: [PATCH] Remove LLVM_DELETED_FUNCTION from destructors that override non-deleted base class destructors. This isn't legal by the C++11 standard and clang now checks for it. Curiously gcc didn't catch this, possibly because of the template usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166089 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Operator.h | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/include/llvm/Operator.h b/include/llvm/Operator.h index bc5da8e8aa3..462324a6694 100644 --- a/include/llvm/Operator.h +++ b/include/llvm/Operator.h @@ -36,8 +36,8 @@ private: void *operator new(size_t, unsigned) LLVM_DELETED_FUNCTION; void *operator new(size_t s) LLVM_DELETED_FUNCTION; Operator() LLVM_DELETED_FUNCTION; - // NOTE: cannot use LLVM_DELETED_FUNCTION because gcc errors when deleting - // an override of a non-deleted function. + // NOTE: cannot use LLVM_DELETED_FUNCTION because it's not legal to delete + // an overridden method that's not deleted in the base class. ~Operator(); public: @@ -191,7 +191,7 @@ public: /// opcodes. template class ConcreteOperator : public SuperClass { - ~ConcreteOperator() LLVM_DELETED_FUNCTION; + ~ConcreteOperator(); // DO NOT IMPLEMENT public: static inline bool classof(const Instruction *I) { return I->getOpcode() == Opc; @@ -207,44 +207,44 @@ public: class AddOperator : public ConcreteOperator { - ~AddOperator() LLVM_DELETED_FUNCTION; + ~AddOperator(); // DO NOT IMPLEMENT }; class SubOperator : public ConcreteOperator { - ~SubOperator() LLVM_DELETED_FUNCTION; + ~SubOperator(); // DO NOT IMPLEMENT }; class MulOperator : public ConcreteOperator { - ~MulOperator() LLVM_DELETED_FUNCTION; + ~MulOperator(); // DO NOT IMPLEMENT }; class ShlOperator : public ConcreteOperator { - ~ShlOperator() LLVM_DELETED_FUNCTION; + ~ShlOperator(); // DO NOT IMPLEMENT }; - + class SDivOperator : public ConcreteOperator { - ~SDivOperator() LLVM_DELETED_FUNCTION; + ~SDivOperator(); // DO NOT IMPLEMENT }; class UDivOperator : public ConcreteOperator { - ~UDivOperator() LLVM_DELETED_FUNCTION; + ~UDivOperator(); // DO NOT IMPLEMENT }; class AShrOperator : public ConcreteOperator { - ~AShrOperator() LLVM_DELETED_FUNCTION; + ~AShrOperator(); // DO NOT IMPLEMENT }; class LShrOperator : public ConcreteOperator { - ~LShrOperator() LLVM_DELETED_FUNCTION; + ~LShrOperator(); // DO NOT IMPLEMENT }; - - - + + + class GEPOperator : public ConcreteOperator { - ~GEPOperator() LLVM_DELETED_FUNCTION; + ~GEPOperator(); // DO NOT IMPLEMENT enum { IsInBounds = (1 << 0)