Fix nptr field alignment in RtClosureInspect

Authored by osa1 on Jul 4 2018, 1:12 AM.


Fix nptr field alignment in RtClosureInspect

extractSubTerms (which is extracting pointer and non-pointer fields of a
closure) was computing the alignment incorrectly when aligning a 64-bit value
(e.g. a Double) on i386 by aligning it to 64-bits instead of to word size
(32-bits). This is documented in mkVirtHeapOffsetsWithPadding:

Align the start offset (eg, 2-byte value should be 2-byte aligned).
But not more than to a word.

Fixes Trac #15061

Test Plan:
Validated on both 32-bit and 64-bit. 32-bit fails with various unrelated stat
failures, but no actual test failures.

Reviewers: hvr, bgamari

Reviewed By: bgamari

Subscribers: simonpj, rwbarton, thomie, carter

GHC Trac Issues: Trac #15061

Differential Revision:

(cherry picked from commit 15bb4e0b6c08b1f8f5511f04af14242f13833ed1)