summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/include/lld/ReaderWriter/ELFLinkingContext.h1
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp4
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
OpenPOWER on IntegriCloud