Nugget
compiler_msvc_barrier.h
1 // Copyright (c) Electronic Arts Inc. All rights reserved.
4 
5 
6 #ifndef EASTL_ATOMIC_INTERNAL_COMPILER_MSVC_BARRIER_H
7 #define EASTL_ATOMIC_INTERNAL_COMPILER_MSVC_BARRIER_H
8 
9 #if defined(EA_PRAGMA_ONCE_SUPPORTED)
10  #pragma once
11 #endif
12 
13 
15 //
16 // void EASTL_COMPILER_ATOMIC_COMPILER_BARRIER()
17 //
18 #define EASTL_COMPILER_ATOMIC_COMPILER_BARRIER() \
19  EA_DISABLE_CLANG_WARNING(-Wdeprecated-declarations) \
20  _ReadWriteBarrier() \
21  EA_RESTORE_CLANG_WARNING()
22 
23 
25 //
26 // void EASTL_COMPILER_ATOMIC_COMPILER_BARRIER_DATA_DEPENDENCY(const T&, type)
27 //
28 #define EASTL_COMPILER_ATOMIC_COMPILER_BARRIER_DATA_DEPENDENCY(val, type) \
29  EASTL_COMPILER_ATOMIC_COMPILER_BARRIER_DATA_DEPENDENCY_FUNC(const_cast<type*>(eastl::addressof((val)))); \
30  EASTL_ATOMIC_COMPILER_BARRIER()
31 
32 
33 #endif /* EASTL_ATOMIC_INTERNAL_COMPILER_MSVC_BARRIER_H */