diff options
Diffstat (limited to 'lib/Driver/HostInfo.cpp')
-rw-r--r-- | lib/Driver/HostInfo.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/Driver/HostInfo.cpp b/lib/Driver/HostInfo.cpp index 5fb9f9929e..d43d234c2f 100644 --- a/lib/Driver/HostInfo.cpp +++ b/lib/Driver/HostInfo.cpp @@ -46,11 +46,12 @@ class DarwinHostInfo : public HostInfo { unsigned GCCVersion[3]; /// Cache of tool chains we have created. - mutable llvm::StringMap<ToolChain*> ToolChains; + mutable llvm::StringMap<ToolChain *> ToolChains; public: DarwinHostInfo(const Driver &D, const char *Arch, const char *Platform, const char *OS); + ~DarwinHostInfo(); virtual bool useDriverDriver() const; @@ -74,6 +75,12 @@ DarwinHostInfo::DarwinHostInfo(const Driver &D, const char *_Arch, GCCVersion[2] = 1; } +DarwinHostInfo::~DarwinHostInfo() { + for (llvm::StringMap<ToolChain*>::iterator + it = ToolChains.begin(), ie = ToolChains.end(); it != ie; ++it) + delete it->second; +} + bool DarwinHostInfo::useDriverDriver() const { return true; } @@ -122,6 +129,7 @@ class UnknownHostInfo : public HostInfo { public: UnknownHostInfo(const Driver &D, const char *Arch, const char *Platform, const char *OS); + ~UnknownHostInfo(); virtual bool useDriverDriver() const; @@ -134,6 +142,12 @@ UnknownHostInfo::UnknownHostInfo(const Driver &D, const char *Arch, : HostInfo(D, Arch, Platform, OS) { } +UnknownHostInfo::~UnknownHostInfo() { + for (llvm::StringMap<ToolChain*>::iterator + it = ToolChains.begin(), ie = ToolChains.end(); it != ie; ++it) + delete it->second; +} + bool UnknownHostInfo::useDriverDriver() const { return false; } |