[PATCH] Fix race condition in Defined Atom ordinal computation.
    Jean-Daniel Dupas 
    mailing at xenonium.com
       
    Fri Mar 13 16:01:04 PDT 2015
    
    
  
Hi ruiu,
Defined atom are allocated in multiples thread. The static counter must be atomic, else the ordinal is not guarantee to be unique (which is required by the Mach-O writer).
REPOSITORY
  rL LLVM
http://reviews.llvm.org/D8336
Files:
  include/lld/Core/Simple.h
Index: include/lld/Core/Simple.h
===================================================================
--- include/lld/Core/Simple.h
+++ include/lld/Core/Simple.h
@@ -174,7 +174,7 @@
 class SimpleDefinedAtom : public DefinedAtom {
 public:
   explicit SimpleDefinedAtom(const File &f) : _file(f) {
-    static uint32_t lastOrdinal = 0;
+    static std::atomic<uint32_t> lastOrdinal;
     _ordinal = lastOrdinal++;
     _references.setAllocator(&f.allocator());
   }
EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8336.21969.patch
Type: text/x-patch
Size: 464 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150313/b58a8454/attachment.bin>
    
    
More information about the llvm-commits
mailing list