[Mips] Guard modification of register usage masks by mutex
authorSimon Atanasyan <simon@atanasyan.com>
Mon, 6 Apr 2015 16:07:19 +0000 (16:07 +0000)
committerSimon Atanasyan <simon@atanasyan.com>
Mon, 6 Apr 2015 16:07:19 +0000 (16:07 +0000)
llvm-svn: 234167

lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h

index 4cb06abba6cad663800bab73b319e5e439b5e0be..32e0484943fd43887901f7d9ee927e07cdb7343b 100644 (file)
@@ -48,6 +48,7 @@ std::error_code MipsLinkingContext::mergeHeaderFlags(uint8_t fileClass,
 }
 
 void MipsLinkingContext::mergeReginfoMask(const MipsReginfo &info) {
+  std::lock_guard<std::mutex> lock(_maskMutex);
   if (_reginfoMask.hasValue())
     _reginfoMask->merge(info);
   else
index 8bcade4c692cb87af7b88ec710195f926e7ddd92..13e988022acb1c7e618fd593a9f01534fff4fc17 100644 (file)
@@ -12,6 +12,7 @@
 #include "MipsELFFlagsMerger.h"
 #include "MipsReginfo.h"
 #include "lld/ReaderWriter/ELFLinkingContext.h"
+#include <mutex>
 
 namespace lld {
 namespace elf {
@@ -67,6 +68,7 @@ public:
 
 private:
   MipsELFFlagsMerger _flagsMerger;
+  std::mutex _maskMutex;
   llvm::Optional<MipsReginfo> _reginfoMask;
 };