Fix two bugs in stg_ap_0_fast in profiling runtime
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Fri, 18 Jan 2019 19:35:37 +0000 (22:35 +0300)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Wed, 20 Feb 2019 14:53:07 +0000 (09:53 -0500)
commit908b4b8659713f0b7a1704ce33c7fa30e3e0ffc3
treecca3036a8f822f0491522405af4a7e604967df00
parent9f5b11fa6a0bc32888fa88b6c3d57baa2e734c64
Fix two bugs in stg_ap_0_fast in profiling runtime

This includes two bug fixes in profiling version of stg_ap_0_fast:

- PAPs allocated by stg_ap_0_fast are now correctly tagged. This
  invariant is checked in Sanity.c:checkPAP.

  (This was originally implemented in 2693eb11f5, later reverted with
  ab55b4ddb7 because it revealed the bug below, but it wasn't clear at
  the time whether the bug was the one below or something in the commit)

- The local variable `untaggedfun` is now marked as a pointer so it
  survives GC.

With this we finally fix all known bugs caught in #15508. `concprog001`
now works reliably with prof+threaded and prof runtimes (with and
without -debug).
rts/Apply.cmm