From a5d28e686f2b2c4d0fe5d22a3dd573df399a1852 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 5 Aug 2019 16:48:26 +0200 Subject: [PATCH] fixes #11817 (#11889) (cherry picked from commit 42e83ac24ccdbc79612be2e0611ce7c82c38e8e1) --- compiler/semtypes.nim | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index e927be417a..49cc1691df 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -1812,14 +1812,11 @@ proc setMagicType(conf: ConfigRef; m: PSym, kind: TTypeKind, size: int) = # long double size can be 8, 10, 12, 16 bytes depending on platform & compiler if conf.target.targetCPU == cpuI386 and size == 8: #on Linux/BSD i386, double are aligned to 4bytes (except with -malign-double) - if kind in {tyFloat64, tyFloat} and - conf.target.targetOS in {osLinux, osAndroid, osNetbsd, osFreebsd, osOpenbsd, osDragonfly}: - m.typ.align = 4 - # on i386, all known compiler, 64bits ints are aligned to 4bytes (except with -malign-double) - elif kind in {tyInt, tyUInt, tyInt64, tyUInt64}: - m.typ.align = 4 - else: - discard + if conf.target.targetOS != osWindows: + if kind in {tyFloat64, tyFloat, tyInt, tyUInt, tyInt64, tyUInt64}: + # on i386 for all known POSIX systems, 64bits ints are aligned + # to 4bytes (except with -malign-double) + m.typ.align = 4 proc setMagicIntegral(conf: ConfigRef; m: PSym, kind: TTypeKind, size: int) = setMagicType(conf, m, kind, size)