<div dir="ltr">Ugh. Is this a bug in MSVC 2012? </div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 14, 2014 at 9:43 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@hanshq.net" target="_blank">hans@hanshq.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: hans<br>
Date: Mon Apr 14 12:43:45 2014<br>
New Revision: 206199<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=206199&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=206199&view=rev</a><br>
Log:<br>
sanitizer_deadlock_detector.h: MSVC 2012 doesn't like compound literals<br>
<br>
Modified:<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h?rev=206199&r1=206198&r2=206199&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h?rev=206199&r1=206198&r2=206199&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h Mon Apr 14 12:43:45 2014<br>
@@ -67,7 +67,8 @@ class DeadlockDetectorTLS {<br>
     CHECK_LT(n_all_locks_, ARRAY_SIZE(all_locks_with_contexts_));<br>
     // lock_id < BV::kSize, can cast to a smaller int.<br>
     u32 lock_id_short = static_cast<u32>(lock_id);<br>
-    all_locks_with_contexts_[n_all_locks_++] = {lock_id_short, stk};<br>
+    LockWithContext l = {lock_id_short, stk};<br>
+    all_locks_with_contexts_[n_all_locks_++] = l;<br>
     return true;<br>
   }<br>
<br>
@@ -244,10 +245,12 @@ class DeadlockDetector {<br>
     uptr n_added_edges = g_.addEdges(dtls->getLocks(current_epoch_), cur_idx,<br>
                                      added_edges, ARRAY_SIZE(added_edges));<br>
     for (uptr i = 0; i < n_added_edges; i++) {<br>
-      if (n_edges_ < ARRAY_SIZE(edges_))<br>
-        edges_[n_edges_++] = {(u16)added_edges[i], (u16)cur_idx,<br>
-                              dtls->findLockContext(added_edges[i]), stk,<br>
-                              unique_tid};<br>
+      if (n_edges_ < ARRAY_SIZE(edges_)) {<br>
+        Edge e = {(u16)added_edges[i], (u16)cur_idx,<br>
+                  dtls->findLockContext(added_edges[i]), stk,<br>
+                  unique_tid};<br>
+        edges_[n_edges_++] = e;<br>
+      }<br>
       // Printf("Edge%zd: %u %zd=>%zd in T%d\n",<br>
       //        n_edges_, stk, added_edges[i], cur_idx, unique_tid);<br>
     }<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>