#4903: Inliner looping when specialising across modules (with GADTs and other
extensions)
---------------------------------------------+------------------------------
  Reporter:  dreixel                         |          Owner:  simonpj         
      Type:  bug                             |         Status:  new             
  Priority:  normal                          |      Milestone:  7.2.1           
 Component:  Compiler                        |        Version:  7.1             
Resolution:                                  |       Keywords:                  
  Testcase:  simplCore/should_compile/T4903  |      Blockedby:                  
Difficulty:                                  |             Os:  Unknown/Multiple
  Blocking:                                  |   Architecture:  Unknown/Multiple
   Failure:  Compile-time crash              |  
---------------------------------------------+------------------------------

Comment(by dreixel):

 I now have an example which is simpler and shows a regression from 7.0.
 This fragment in particular illustrates how compilation can fail both on
 7.0 and 7.1, or only on 7.1:
 {{{
 tree :: Tree
 -- |tree = undefined| compiles both with 7.0 and 7.1
 tree = treeN 0 where
   treeN 0 = undefined
   treeN n = Bin (treeN 0)     (treeN 0)
   -- Replacing the line above with the line below makes 7.0 loop
   -- treeN n = Bin (treeN (n-1)) (treeN (n-1))
 }}}

 Note that 7.0 is not behaving correctly for all cases, either, so this is
 not "just" a regression. Attaching test files.

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

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to