Fix nptr field alignment in RtClosureInspect
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Wed, 4 Jul 2018 06:12:01 +0000 (09:12 +0300)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Wed, 4 Jul 2018 06:12:27 +0000 (09:12 +0300)
commit15bb4e0b6c08b1f8f5511f04af14242f13833ed1
tree2e50184512814b19d4c17d1e0f3ab7a14767e2fa
parent6cb189d1d465d18879b6a4b107fbdce53b2ebf56
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 #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: #15061

Differential Revision: https://phabricator.haskell.org/D4906
compiler/ghci/RtClosureInspect.hs
testsuite/tests/ghci.debugger/scripts/all.T