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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alexey Samsonov
2013-11-18 09:31:53 +00:00
parent 69b2447b6a
commit b21ab43cfc
115 changed files with 153 additions and 501 deletions

View File

@@ -83,8 +83,14 @@ protected:
UnsupportedOSs.push_back(Triple::Cygwin);
}
virtual void SetUp();
virtual void SetUp() {
didCallAllocateCodeSection = false;
Module = 0;
Function = 0;
Engine = 0;
Error = 0;
}
virtual void TearDown() {
if (Engine)
LLVMDisposeExecutionEngine(Engine);
@@ -151,14 +157,6 @@ protected:
char *Error;
};
void MCJITCAPITest::SetUp() {
didCallAllocateCodeSection = false;
Module = 0;
Function = 0;
Engine = 0;
Error = 0;
}
TEST_F(MCJITCAPITest, simple_function) {
SKIP_UNSUPPORTED_PLATFORM;

View File

@@ -18,13 +18,7 @@
using namespace llvm;
class MCJITMultipleModuleTest : public testing::Test,
public MCJITTestBase {
public:
virtual ~MCJITMultipleModuleTest();
};
MCJITMultipleModuleTest::~MCJITMultipleModuleTest() {}
class MCJITMultipleModuleTest : public testing::Test, public MCJITTestBase {};
namespace {

View File

@@ -21,13 +21,11 @@ using namespace llvm;
class MCJITTest : public testing::Test, public MCJITTestBase {
protected:
virtual void SetUp();
virtual void SetUp() {
M.reset(createEmptyModule("<main>"));
}
};
void MCJITTest::SetUp() {
M.reset(createEmptyModule("<main>"));
}
namespace {
// FIXME: Ensure creating an execution engine does not crash when constructed