[GHC] #14285: Entered absent arg - triggered by INLINEABLE, regression from 8.0.2

GHC ghc-devs at haskell.org
Tue Oct 3 13:45:22 UTC 2017


#14285: Entered absent arg - triggered by INLINEABLE, regression from 8.0.2
---------------------------------+--------------------------------------
        Reporter:  j.waldmann    |                Owner:  (none)
            Type:  bug           |               Status:  new
        Priority:  normal        |            Milestone:
       Component:  Compiler      |              Version:  8.2.1
      Resolution:                |             Keywords:
Operating System:  Linux         |         Architecture:  x86_64 (amd64)
 Type of failure:  None/Unknown  |            Test Case:
      Blocked By:                |             Blocking:
 Related Tickets:                |  Differential Rev(s):
       Wiki Page:                |
---------------------------------+--------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"dbbee1bacef1a8accc630908c31cf267a3cb98a9/ghc"
 dbbee1ba/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="dbbee1bacef1a8accc630908c31cf267a3cb98a9"
 Fix nasty bug in w/w for absence analysis

 This dark corner was exposed by Trac #14285.  It involves the
 interaction between absence analysis and INLINABLE pragmas.

 There is a full explanation in Note [aBSENT_ERROR_ID] in MkCore,
 which you can read there.  The changes in this patch are

 * Make exprIsHNF return True for absentError, treating
   absentError like an honorary data constructor.

 * Make absentError /not/ be diverging, unlike other error Ids.

 This is all a bit horrible.

 * While doing this I found that exprOkForSpeculation didn't
   have a case for value lambdas so I added one.  It's not
   really called on lifted types much, but it seems like the
   right thing
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14285#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list