
#14677: Code generator does not correctly tag a pointer -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: 14626 Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by heisenbug): Replying to [comment:20 alexbiehl]:
Gabor,
see https://github.com/ghc/ghc/blob/master/rts/StgMiscClosures.cmm#L268. Take the indirectee, untag and enter. (Btw. why do we untag the value and enter, wouldn't we want to just return R1 if it is tagged?)
So `StgInd_indirectee` grabs the value `evtWrite1_r3aU_closure+1` (why the two zeroes behind that???). If we (could?) know that `evtWrite_closure` just redirects to that, why not perform the redirection at Cmm-gen time? The unfolding TMPL surely gives a hint how to do it!
edit: (entering the indirectee makes sense to reduce chains of
IND_STATICs to the static value) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14677#comment:21 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler