[GHC] #9208: panic - attempt to prod-split strictness call demand C(S(C(C(S(LS)))))

GHC ghc-devs at haskell.org
Mon Jun 23 07:04:50 UTC 2014


#9208: panic - attempt to prod-split strictness call demand C(S(C(C(S(LS)))))
-------------------------------------------------+-------------------------
        Reporter:  luite                         |            Owner:
            Type:  bug                           |           Status:  merge
        Priority:  normal                        |        Milestone:
       Component:  Compiler                      |          Version:  7.8.2
      Resolution:                                |         Keywords:
Operating System:  Unknown/Multiple              |     Architecture:
 Type of failure:  None/Unknown                  |  Unknown/Multiple
       Test Case:  stranal/should_compile/T9208  |       Difficulty:
        Blocking:                                |  Unknown
                                                 |       Blocked By:
                                                 |  Related Tickets:
-------------------------------------------------+-------------------------

Comment (by simonpj):

 No, there's nothing wrong with the test case, but I should have commented
 on it.

 There really is a terrible bug in the program: it takes the value `()`,
 unsafely casts it to a function, and applies it.  As it happens the ASSERT
 in `StgCmmExpr` can see this happening, and complains.  (But a slightly
 more complicated example might conceal the problem.)  So something bizarre
 is going to happen, but that's what the programmer asked for.

 In general GHC should never crash, no matter how bizarre the program.  You
 could argue for a civilised error messaage.  Or you could argue to remove
 the ASSERT.  But I don't want to spend precious cycles thinking about
 programs that are wrong anyway.

 The strongest case for doing something is that building stage-2 with
 `-DDEBUG` is really a good plan for flushing out latent bugs, but this
 test will make it look as if there is a failure.  I'm open to suggestions
 about how to fix that.  Perhaps the best way would be to switch on
 `CmmLint` as well as `-DDEBUG`, and make sure `CmmLint` detects this
 particular problem.

 Simon

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


More information about the ghc-tickets mailing list