mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-13 15:37:24 +00:00
Add a 'deleteModule' method to the Linker class.
This deletes the Module ivar instead of having the LTO code generater do it. It also sets the pointer to 'NULL', so that if it's used again it will abort quickly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192778 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
32c24da373
commit
b4a0ba1718
@ -32,7 +32,9 @@ class Linker {
|
||||
|
||||
Linker(Module *M);
|
||||
~Linker();
|
||||
|
||||
Module *getModule() const { return Composite; }
|
||||
void deleteModule();
|
||||
|
||||
/// \brief Link \p Src into the composite. The source is destroyed if
|
||||
/// \p Mode is DestroySource and preserved if it is PreserveSource.
|
||||
|
@ -66,7 +66,10 @@ LTOCodeGenerator::LTOCodeGenerator()
|
||||
LTOCodeGenerator::~LTOCodeGenerator() {
|
||||
delete TargetMach;
|
||||
delete NativeObjectFile;
|
||||
delete Linker.getModule();
|
||||
TargetMach = NULL;
|
||||
NativeObjectFile = NULL;
|
||||
|
||||
Linker.deleteModule();
|
||||
|
||||
for (std::vector<char *>::iterator I = CodegenOptions.begin(),
|
||||
E = CodegenOptions.end();
|
||||
|
@ -1352,6 +1352,11 @@ Linker::Linker(Module *M) : Composite(M) {
|
||||
Linker::~Linker() {
|
||||
}
|
||||
|
||||
void Linker::deleteModule() {
|
||||
delete Composite;
|
||||
Composite = NULL;
|
||||
}
|
||||
|
||||
bool Linker::linkInModule(Module *Src, unsigned Mode, std::string *ErrorMsg) {
|
||||
ModuleLinker TheLinker(Composite, IdentifiedStructTypes, Src, Mode);
|
||||
if (TheLinker.run()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user