Issue #20354: Fix alignment issue in the tracemalloc module on 64-bit

platforms. Bug seen on 64-bit Linux when using "make profile-opt".

Only align the "frame_t" structure on 32-bit when Visual Studio is used. Before
the alignment to 32-bit was applied to the whole file any compiler supporting
"#pragma pack(4)" which includes GCC.
This commit is contained in:
Victor Stinner 2014-02-01 03:43:58 +01:00
parent a17b6bb5fe
commit dd382ef8ec
1 changed files with 2 additions and 1 deletions

View File

@ -61,10 +61,11 @@ static PyThread_type_lock tables_lock;
architectures: 12 bytes instead of 16. This optimization might produce
SIGBUS on architectures not supporting unaligned memory accesses (64-bit
IPS CPU?): on such architecture, the structure must not be packed. */
#pragma pack(4)
typedef struct
#ifdef __GNUC__
__attribute__((packed))
#elif defined(_MSC_VER)
_declspec(align(4))
#endif
{
PyObject *filename;