#7310: Compiler nontermination on UNPACK pragmas
--------------------------------+-------------------------------------------
 Reporter:  nwf                 |          Owner:                
     Type:  bug                 |         Status:  new           
 Priority:  normal              |      Component:  Compiler      
  Version:  7.6.1               |       Keywords:                
       Os:  Linux               |   Architecture:  x86_64 (amd64)
  Failure:  Compile-time crash  |       Testcase:                
Blockedby:                      |       Blocking:                
  Related:                      |  
--------------------------------+-------------------------------------------
 Feeding GHC 7.6.1 (from git) ill-advised UNPACK pragmas like
 {{{
 data T1 = T1 {-# UNPACK #-} !T1
 }}}

 results in GHC going into infinite wait; gdb reports

 {{{
 #1  0x0000000001f7f979 in waitCondition ()
 #2  0x0000000001f68c3b in yieldCapability ()
 #3  0x0000000001f712d2 in schedule ()
 #4  0x0000000001f727b5 in scheduleWaitThread ()
 #5  0x0000000001f6f40e in real_main ()
 #6  0x0000000001f6f50a in hs_main ()
 #7  0x0000000000495763 in main ()
 }}}

 This happens, apparently, whenever there's possible recursion through an
 UNPACK pragma, even in the (I think) well-formed
 {{{
 data T0 = T0 T1
 data T1 = T1 {-# UNPACK #-} !T0
 }}}

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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to