
#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:11 simonpj]:
Any progress, heisenbug?
Sure! With my latest `git push wip/T14677` I have added a testcase (at GHC root directory for the interim), which shows that invoking a function with a `newtype Event = Event Int` argument now (with the patch applied) incorrectly assumes that `Event` constructor is passed '''unpacked'''. If you build the `ghc-stage1` on this branch and compile using `-O2` you'll get failures. With `-O0` the test passes, (as does `master` and `GHC-8.2.2`). So something is still wrong. In the buggy case the tagged pointer is checked at bit position 0 so the tagged `I#` constructor is being detected, but interpreted as an `Event` = `[evtRead]`. I don't understand enough about argument unpacking to resolve this. Maybe you can have a look? The `-g` problems above are a red herring, and probably another bug. Please disregard for now. I did not try defining `Event` locally yet, maybe that changes the situation. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14677#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler