From 16329e0a0c6cf77012d982cf8a32eb7882d8dfbd Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 10 Aug 2026 18:16:39 +0200 Subject: [PATCH] Silence MSVC warning C4366. warning C4366: The result of the unary '&' operator may be unaligned --- public/common/TracyAlign.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 ) );