diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-11-18 09:31:53 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-11-18 09:31:53 +0000 |
commit | 49109a279c6b7b3622fa0227f6c77a96d075f718 (patch) | |
tree | d3ee87a1f6131cd29380a4ce6dd84aa232b2fa4c /llvm/include/llvm/Support/CommandLine.h | |
parent | 6588c1a638032c8146be7f5d62a125f5d89dea76 (diff) | |
download | bcm5719-llvm-49109a279c6b7b3622fa0227f6c77a96d075f718.tar.gz bcm5719-llvm-49109a279c6b7b3622fa0227f6c77a96d075f718.zip |
Revert r194865 and r194874.
This change is incorrect. If you delete virtual destructor of both a base class
and a subclass, then the following code:
Base *foo = new Child();
delete foo;
will not cause the destructor for members of Child class. As a result, I observe
plently of memory leaks. Notable examples I investigated are:
ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl.
llvm-svn: 194997
Diffstat (limited to 'llvm/include/llvm/Support/CommandLine.h')
-rw-r--r-- | llvm/include/llvm/Support/CommandLine.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/llvm/include/llvm/Support/CommandLine.h b/llvm/include/llvm/Support/CommandLine.h index 4efb6a67cf6..c0bfbae0370 100644 --- a/llvm/include/llvm/Support/CommandLine.h +++ b/llvm/include/llvm/Support/CommandLine.h @@ -350,9 +350,6 @@ struct cat { struct GenericOptionValue { virtual ~GenericOptionValue() {} virtual bool compare(const GenericOptionValue &V) const = 0; - -private: - virtual void anchor(); }; template<class DataType> struct OptionValue; @@ -1755,7 +1752,6 @@ void getRegisteredOptions(StringMap<Option*> &Map); /// \brief Saves strings in the inheritor's stable storage and returns a stable /// raw character pointer. class StringSaver { - virtual void anchor(); public: virtual const char *SaveString(const char *Str) = 0; virtual ~StringSaver() {}; // Pacify -Wnon-virtual-dtor. |