diff --git a/public/common/TracyAlign.hpp b/public/common/TracyAlign.hpp index ecb6d435..e6e854f0 100644 --- a/public/common/TracyAlign.hpp +++ b/public/common/TracyAlign.hpp @@ -6,11 +6,17 @@ #include "TracyForceInline.hpp" +#if defined _MSC_VER && !defined _M_IX86 +# define TracyUnaligned __unaligned +#else +# define TracyUnaligned +#endif + namespace tracy { template -tracy_force_inline T MemRead( const T* ptr ) +tracy_force_inline T MemRead( const TracyUnaligned T* ptr ) { T val; memcpy( &val, ptr, sizeof( T ) ); @@ -18,7 +24,7 @@ tracy_force_inline T MemRead( const T* ptr ) } template -tracy_force_inline void MemWrite( T* ptr, U val ) +tracy_force_inline void MemWrite( TracyUnaligned T* ptr, U val ) { static_assert( std::is_same::value, "MemWrite type mismatch" ); memcpy( (void*)ptr, &val, sizeof( T ) );