Bug 1021290. More Atomics.h build fixes for clang-cl. r=froydnj
☠☠ backed out by be43c6389387 ☠ ☠
authorJeff Muizelaar <jmuizelaar@mozilla.com>
Thu, 05 Jun 2014 19:48:52 -0400
changeset 206222 34f371b1024bb9392a29a31280ebf6db534bea38
parent 206221 e6905f611ad6bc6c08f8feaca144791ba3cb2afe
child 206223 122b37a8fa4facb11b1082808ac8953e24694e0f
push id3741
push userasasaki@mozilla.com
push dateMon, 21 Jul 2014 20:25:18 +0000
treeherdermozilla-beta@4d6f46f5af68 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1021290, 932454
milestone32.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1021290. More Atomics.h build fixes for clang-cl. r=froydnj This is basically more of bug 932454
mfbt/Atomics.h
--- a/mfbt/Atomics.h
+++ b/mfbt/Atomics.h
@@ -861,16 +861,17 @@ struct IntrinsicAddSub : public Intrinsi
     return applyBinaryFunction(&Primitives::sub, aPtr, aVal);
   }
 };
 
 template<typename T>
 struct IntrinsicAddSub<T*> : public IntrinsicApplyHelper<T*>
 {
   typedef typename IntrinsicApplyHelper<T*>::ValueType ValueType;
+  typedef typename IntrinsicBase<T>::Primitives Primitives;
 
   static ValueType add(ValueType& aPtr, ptrdiff_t aAmount)
   {
     return applyBinaryFunction(&Primitives::add, aPtr,
                                (ValueType)(aAmount * sizeof(ValueType)));
   }
 
   static ValueType sub(ValueType& aPtr, ptrdiff_t aAmount)
@@ -888,16 +889,17 @@ struct IntrinsicIncDec : public Intrinsi
   static ValueType dec(ValueType& aPtr) { return sub(aPtr, 1); }
 };
 
 template<typename T, MemoryOrdering Order>
 struct AtomicIntrinsics : public IntrinsicMemoryOps<T, Order>,
                           public IntrinsicIncDec<T>
 {
   typedef typename IntrinsicIncDec<T>::ValueType ValueType;
+  typedef typename IntrinsicBase<T>::Primitives Primitives;
 
   static ValueType or_(ValueType& aPtr, T aVal)
   {
     return applyBinaryFunction(&Primitives::or_, aPtr, aVal);
   }
 
   static ValueType xor_(ValueType& aPtr, T aVal)
   {