[compiler-rt] r206199 - sanitizer_deadlock_detector.h: MSVC 2012 doesn't like compound literals

Kostya Serebryany kcc at google.com
Mon Apr 14 12:00:05 PDT 2014


Ugh. Is this a bug in MSVC 2012?


On Mon, Apr 14, 2014 at 9:43 PM, Hans Wennborg <hans at hanshq.net> wrote:

> Author: hans
> Date: Mon Apr 14 12:43:45 2014
> New Revision: 206199
>
> URL: http://llvm.org/viewvc/llvm-project?rev=206199&view=rev
> Log:
> sanitizer_deadlock_detector.h: MSVC 2012 doesn't like compound literals
>
> Modified:
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h
>
> Modified:
> compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h?rev=206199&r1=206198&r2=206199&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h
> (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_deadlock_detector.h
> Mon Apr 14 12:43:45 2014
> @@ -67,7 +67,8 @@ class DeadlockDetectorTLS {
>      CHECK_LT(n_all_locks_, ARRAY_SIZE(all_locks_with_contexts_));
>      // lock_id < BV::kSize, can cast to a smaller int.
>      u32 lock_id_short = static_cast<u32>(lock_id);
> -    all_locks_with_contexts_[n_all_locks_++] = {lock_id_short, stk};
> +    LockWithContext l = {lock_id_short, stk};
> +    all_locks_with_contexts_[n_all_locks_++] = l;
>      return true;
>    }
>
> @@ -244,10 +245,12 @@ class DeadlockDetector {
>      uptr n_added_edges = g_.addEdges(dtls->getLocks(current_epoch_),
> cur_idx,
>                                       added_edges,
> ARRAY_SIZE(added_edges));
>      for (uptr i = 0; i < n_added_edges; i++) {
> -      if (n_edges_ < ARRAY_SIZE(edges_))
> -        edges_[n_edges_++] = {(u16)added_edges[i], (u16)cur_idx,
> -                              dtls->findLockContext(added_edges[i]), stk,
> -                              unique_tid};
> +      if (n_edges_ < ARRAY_SIZE(edges_)) {
> +        Edge e = {(u16)added_edges[i], (u16)cur_idx,
> +                  dtls->findLockContext(added_edges[i]), stk,
> +                  unique_tid};
> +        edges_[n_edges_++] = e;
> +      }
>        // Printf("Edge%zd: %u %zd=>%zd in T%d\n",
>        //        n_edges_, stk, added_edges[i], cur_idx, unique_tid);
>      }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140414/aa8bd346/attachment.html>


More information about the llvm-commits mailing list