
#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): Looking at the assembly again, this line {{{ 0x000000000051c5cc <+4>: cmp 0x358(%r13),%r12 }}} does heap limit check for allocation (`%r12` is the reg table, 0x358 = 856, offset for `rHpLim`), then this line {{{ 0x000000000051c5d5 <+13>: mov 0x360(%r13),%rax }}} Moves `rCCCS` (current cost centre stack) to `%rax`, so this line {{{ 0x000000000051c5dc <+20>: addq $0x3,0x48(%rax) }}} Tries to increment current cost centre stack's `mem_alloc`! Somehow `rCCCS->mem_alloc` is actually info pointer of another closure! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15508#comment:27 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler