Skip to content

Make printer untag when chasing a pointer in a RET_FUN frame

This matches what Scav.c does: https://github.com/ghc/ghc/blob/2ff77b9894eecf51fa619ed2266ca196e296cd1e/rts/sm/Scav.c#L1950

@mpickering asked me to think of a nice way to test this. Unfortunately, I'm blanking on this aspect.

I wondered if it's possible to have some sort of visitor-like infrastructure, so that delicate bugs like these can be fixed once-per-visitor, rather than n times for the number of things that walk the heap. Unfortunately, @bgamari mentioned that this might introduce hard-to-predict performance regressions due to our inability to control the generated code.

Would having a separate Visitor-like infrastructure make testing this easier?

Merge request reports