diff options
-rw-r--r-- | lld/include/lld/ReaderWriter/ELFLinkingContext.h | 1 | ||||
-rw-r--r-- | lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lld/include/lld/ReaderWriter/ELFLinkingContext.h b/lld/include/lld/ReaderWriter/ELFLinkingContext.h index b59d3604cbc..9cfc2f8d69b 100644 --- a/lld/include/lld/ReaderWriter/ELFLinkingContext.h +++ b/lld/include/lld/ReaderWriter/ELFLinkingContext.h @@ -408,6 +408,7 @@ protected: std::map<std::string, uint64_t> _absoluteSymbols; llvm::StringSet<> _dynamicallyExportedSymbols; std::unique_ptr<File> _resolver; + std::mutex _cidentMutex; llvm::StringSet<> _cidentSections; // The linker script semantic object, which owns all script ASTs, is stored diff --git a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp index 70ed30a12ed..8c76a788fa2 100644 --- a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp +++ b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp @@ -254,8 +254,10 @@ void ELFLinkingContext::notifyInputSectionName(StringRef name) { if (name.find_first_not_of("0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" - "_") == StringRef::npos) + "_") == StringRef::npos) { + std::lock_guard<std::mutex> lock(_cidentMutex); _cidentSections.insert(name); + } } } // end namespace lld |