Skip to content
  • Ömer Sinan Ağacan's avatar
    Fix nptr field alignment in RtClosureInspect · 15bb4e0b
    Ömer Sinan Ağacan authored
    `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
    15bb4e0b