
print *(StgClosure*)0x4207528048 $34 = {
#15508: concprog001 fails with various errors
-------------------------------------+-------------------------------------
Reporter: osa1 | Owner: osa1
Type: bug | Status: new
Priority: highest | Milestone: 8.8.1
Component: Compiler | Version: 8.5
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: Runtime crash | Test Case:
Blocked By: | Blocking:
Related Tickets: #15571 | Differential Rev(s): Phab:D5051
Wiki Page: | (reverted), Phab:D5165, Phab:D5178
-------------------------------------+-------------------------------------
Comment (by osa1):
One of the remaining issues is this: sometimes with prof+threaded builds
we
increment info pointers. This either segfaults, or the GC thinks that the
object
is already evacuated (because info pointer looks like a forwarding pointer
when we increment it) and
chaos ensues. Here's an example, in this generated code for
`GHC.Conc.Sync.childHandler`:
{{{
Dump of assembler code for function
base_GHCziConcziSync_childHandler1_info:
0x000000000051c5c8 <+0>: add $0x28,%r12
0x000000000051c5cc <+4>: cmp 0x358(%r13),%r12
0x000000000051c5d3 <+11>: ja 0x51c61a
call printClosure((StgClosure*)0x4207528048) ghc-prim:GHC.Types.:(0x42075280b9, 0x4207528092) }}}
print *(StgClosure*)0x4207528048 $40 = {
After that line:
{{{
header = {
info = 0x9f2203