Make ~Operator() protected so subclasses can inherit it and not have
authorKaelyn Uhrain <rikka@google.com>
Wed, 24 Oct 2012 19:17:42 +0000 (19:17 +0000)
committerKaelyn Uhrain <rikka@google.com>
Wed, 24 Oct 2012 19:17:42 +0000 (19:17 +0000)
a bunch of errors for all the Operator subclasses such as:

include/llvm/Operator.h:76:7: error: deleted function 'virtual llvm::OverflowingBinaryOperator::~OverflowingBinaryOperator()'
include/llvm/Operator.h:43:3: error: overriding non-deleted function 'virtual llvm::Operator::~Operator()'
include/llvm/Operator.h:76:7: error: 'virtual llvm::OverflowingBinaryOperator::~OverflowingBinaryOperator()' is implicitly deleted because the default definition would be ill-formed:
include/llvm/Operator.h:43:3: error: 'virtual llvm::Operator::~Operator()' is private
include/llvm/Operator.h:76:7: error: within this context

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166611 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Operator.h

index 41e6db0b961f760f517fad923c7d4ecd5279c822..b326c11352067edcd46dacc43de1d96553262fa6 100644 (file)
@@ -37,6 +37,7 @@ private:
   void *operator new(size_t s) LLVM_DELETED_FUNCTION;
   Operator() LLVM_DELETED_FUNCTION;
 
+protected:
   // NOTE: Cannot use LLVM_DELETED_FUNCTION because it's not legal to delete
   // an overridden method that's not deleted in the base class. Cannot leave
   // this unimplemented because that leads to an ODR-violation.