diff --git a/lld/MachO/Config.h b/lld/MachO/Config.h --- a/lld/MachO/Config.h +++ b/lld/MachO/Config.h @@ -207,7 +207,7 @@ No, // Never load the archive, regardless of other flags }; -extern Configuration *config; +extern std::unique_ptr config; } // namespace macho } // namespace lld diff --git a/lld/MachO/Driver.h b/lld/MachO/Driver.h --- a/lld/MachO/Driver.h +++ b/lld/MachO/Driver.h @@ -115,7 +115,7 @@ std::set notFounds; }; -extern DependencyTracker *depTracker; +extern std::unique_ptr depTracker; } // namespace macho } // namespace lld diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -59,8 +59,8 @@ using namespace lld; using namespace lld::macho; -Configuration *macho::config; -DependencyTracker *macho::depTracker; +std::unique_ptr macho::config; +std::unique_ptr macho::depTracker; static HeaderFileType getOutputType(const InputArgList &args) { // TODO: -r, -dylinker, -preload... @@ -1136,11 +1136,11 @@ return true; } - config = make(); - symtab = make(); + config = std::make_unique(); + symtab = std::make_unique(); target = createTargetInfo(args); - depTracker = - make(args.getLastArgValue(OPT_dependency_info)); + depTracker = std::make_unique( + args.getLastArgValue(OPT_dependency_info)); if (errorCount()) return false; diff --git a/lld/MachO/SymbolTable.h b/lld/MachO/SymbolTable.h --- a/lld/MachO/SymbolTable.h +++ b/lld/MachO/SymbolTable.h @@ -70,7 +70,7 @@ void treatUndefinedSymbol(const Undefined &, StringRef source = ""); -extern SymbolTable *symtab; +extern std::unique_ptr symtab; } // namespace macho } // namespace lld diff --git a/lld/MachO/SymbolTable.cpp b/lld/MachO/SymbolTable.cpp --- a/lld/MachO/SymbolTable.cpp +++ b/lld/MachO/SymbolTable.cpp @@ -319,4 +319,4 @@ } } -SymbolTable *macho::symtab; +std::unique_ptr macho::symtab;