diff options
author | Zejun Wu <watashi@fb.com> | 2018-10-28 12:22:25 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-10-28 13:40:13 -0400 |
commit | 3c452d0dce33cb06ef739f4e44549a499277e11b (patch) | |
tree | a6c072435adc94c05cb2f96299e9c2c5f55b409a /includes | |
parent | d8495549ba9d194815c2d0eaee6797fc7c00756a (diff) | |
download | haskell-3c452d0dce33cb06ef739f4e44549a499277e11b.tar.gz |
Fix rare undefined asm temp end label error in x86
Summary:
Encountered assembly error due to undefined label `.LcaDcU_info_end` for
following code generated by `pprFrameProc`:
```
.Lsat_sa8fp{v}_info_fde_end:
.long .Lblock{v caDcU}_info_fde_end-.Lblock{v caDcU}_info_fde
.Lblock{v caDcU}_info_fde:
.long _nbHlD-.Lsection_frame
.quad block{v caDcU}_info-1
.quad .Lblock{v caDcU}_info_end-block{v caDcU}_info+1
.byte 1
```
This diff fixed the error.
Test Plan:
./validate
Also the case where we used to have assembly error is now fixed.
Unfortunately, I have limited insight here and cannot get a small enough repro
or test case for this.
Ben says:
> I think I see: Previously we only produced end symbols for the info
> tables of top-level procedures. However, blocks within a procedure may
> also have info tables, we will dutifully generate debug information for
> and consequently we get undefined symbols.
Reviewers: simonmar, scpmw, last_g, bgamari
Reviewed By: bgamari
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5246
Diffstat (limited to 'includes')
0 files changed, 0 insertions, 0 deletions