#4498: ghc 7.0.1 and 7.1.20101112+ panics building blaze-builder-0.2.0.1
---------------------------------+------------------------------------------
    Reporter:  awson             |       Owner:                    
        Type:  bug               |      Status:  new               
    Priority:  normal            |   Component:  Compiler          
     Version:  7.0.1             |    Keywords:                    
    Testcase:                    |   Blockedby:                    
          Os:  Unknown/Multiple  |    Blocking:                    
Architecture:  Unknown/Multiple  |     Failure:  Compile-time crash
---------------------------------+------------------------------------------
 When building blaze-builder-0.2.0.1, ghc 7.0.1 (I've tried ghc
 7.1.20101112 and 7.1.20101115 also) spits this:
 {{{
 Building blaze-builder-0.2.0.1...
 [1 of 8] Compiling Blaze.ByteString.Builder.Internal (
 Blaze\ByteString\Builder\Internal.hs,
 dist\build\Blaze\ByteString\Builder\Internal.o )
 ghc.exe: panic! (the 'impossible' happened)
   (GHC version 7.0.1 for i386-unknown-mingw32):
         dsLet: unlifted
     AbsBinds
     [b{tv aW1} [sk]]
     []
     [pe{v ax5} [lid] <= [b{tv aW1} [sk]] pe{v aW0} [lid]]
       pe{v ax5} [lid]
         :: forall b{tv aW1} [sk]. base:GHC.Ptr.Ptr{tc 33A} b{tv aW1} [sk]
       [LclId]
       { {273:19-54}
         {273:19-54}
         !((pe{v aW0} [lid] :: base:GHC.Ptr.Ptr{tc 33A} b{tv aW1} [sk]))
           = {273:30-54}
             {273:33-41}
             (base:GHC.Ptr.plusPtr{v r4T} [gid]) @ base:GHC.Word.Word8{tc
 32U}
             @ b{tv aW1} [sk]
               pf{v ax4} [lid] firstBufSize{v arJ} [lid] }
     EvBinds{{}}
     base:GHC.Base.>>={v 01P} [gid[ClassOp]]
       @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
       $dMonad{v aW2} [lid]
       @ blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rr6}
       @ bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc
 rfX}
       (step0{v arQ} [lid]
          pf{v ax4} [lid] (pe{v ax5} [lid] @ base:GHC.Word.Word8{tc 32U}))
       (\ (next{v axL} [lid]
             :: blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rr6}) ->
          let {
            ds_d16v{v} [lid]
              :: blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rr6}
            [LclId]
            ds_d16v{v} [lid] = next{v axL} [lid] } in
          case ds_d16v{v} [lid] {ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}}
          of (wild_B1{v} [lid]
                :: blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rr6}) {
            blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.Done{d
 rrc} (rb_d16F{v} [lid]
 :: ghc-prim:GHC.Prim.Addr#{(w) tc 33}) ->
              let {
                pf'{v axM} [lid]
                  :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc 32U}
                [LclId]
                pf'{v axM} [lid] =
                  base:GHC.Ptr.Ptr{v rcL} [gid[DataCon]]
                    @ base:GHC.Word.Word8{tc 32U} rb_d16F{v} [lid] } in
              let {
                fail_d16w{v} [lid]
                  :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                       ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}
                     -> ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                [LclId]
                fail_d16w{v} [lid] =
                  \ (ds_d16x{v} [lid]
                       :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                            ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}) ->
                    base:GHC.Base.${v 019} [gid]
                      @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                      @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                      (base:GHC.Base.return{v 01T} [gid[ClassOp]]
                         @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
                         $dMonad{v aW7} [lid]
                         @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
 (bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.$WChunk{v reB}
 [gid[DataConWrapper]]
                         (mkbs{v ax6} [lid] @ base:GHC.Word.Word8{tc 32U}
 pf'{v axM} [lid])
                         k{v arL} [lid]) } in
              case base:GHC.Classes.=={v 01L} [gid[ClassOp]]
                     @ (base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc
 32U})
                     $dEq{v aW4} [lid]
                     pf'{v axM} [lid]
                     pf{v ax4} [lid] {ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}}
              of (wild_B1{v} [lid] :: ghc-prim:GHC.Bool.Bool{(w) tc 3c}) {
                ghc-prim:GHC.Bool.False{(w) d 68} ->
                  fail_d16w{v} [lid] ghc-prim:GHC.Prim.realWorld#{(w) v 0o}
 [gid];
                ghc-prim:GHC.Bool.True{(w) d 6u} ->
                  base:GHC.Base.return{v 01T} [gid[ClassOp]]
                    @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
                    $dMonad{v aW5} [lid]
                    @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                    k{v arL} [lid]
              };
            blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BufferFull{d rra}
 (rb_d16H{v} [lid]
 :: ghc-prim:GHC.Prim.Int#{(w) tc 3G})
 (rb_d16I{v} [lid]
 :: ghc-prim:GHC.Prim.Addr#{(w) tc 33})
 (nextStep{v axP} [lid]
 :: blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildStep{tc
 rr4}) ->
              let {
                newSize{v axN} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J}
                [LclId]
                newSize{v axN} [lid] =
                  ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
                    rb_d16H{v} [lid] } in
              let {
                pf'{v axO} [lid]
                  :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc 32U}
                [LclId]
                pf'{v axO} [lid] =
                  base:GHC.Ptr.Ptr{v rcL} [gid[DataCon]]
                    @ base:GHC.Word.Word8{tc 32U} rb_d16I{v} [lid] } in
              let {
                l{v aW9} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J}
                [LclId]
                l{v aW9} [lid] =
                  base:GHC.Ptr.minusPtr{v r4Q} [gid]
                    @ base:GHC.Word.Word8{tc 32U}
                    @ base:GHC.Word.Word8{tc 32U}
                    pf'{v axO} [lid]
                    pf{v ax4} [lid] } in
              case l{v aW9} [lid]
              {ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}}
              of (l{v aW9} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J})
              { __DEFAULT ->
              let {
                l{v axQ} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J}
                [LclId]
                l{v axQ} [lid] = l{v aW9} [lid] } in
              base:GHC.Base.${v 019} [gid]
                @ blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildStep{tc rr4}
                @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                (fillNewBuffer{v arO} [lid]
                   (base:GHC.Classes.max{v rC} [gid[ClassOp]]
                      @ ghc-prim:GHC.Types.Int{(w) tc 3J}
                      $dOrd{v aWa} [lid]
                      (base:GHC.Num.+{v r20} [gid[ClassOp]]
                         @ ghc-prim:GHC.Types.Int{(w) tc 3J}
                         $dNum{v aZq} [lid]
                         l{v axQ} [lid]
                         newSize{v axN} [lid])
                      minBufSize{v arI} [lid]))
                (\ (pfNew{v axR} [lid]
                      :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc
 32U})
                   (peNew{v axS} [lid]
                      :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc
 32U}) ->
                   base:GHC.Base.>>{v 01Q} [gid[ClassOp]]
                     @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
                     $dMonad{v aZr} [lid]
                     @ ghc-prim:GHC.Unit.(){(w) tc 40}
                     @ blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildSignal{tc rr6}
                     (base:Foreign.Marshal.Utils.copyBytes{v r48} [gid]
                        @ base:GHC.Word.Word8{tc 32U}
                        pfNew{v axR} [lid]
                        pf{v ax4} [lid]
                        l{v axQ} [lid])
                     (nextStep{v axP} [lid]
                        (base:GHC.Ptr.plusPtr{v r4T} [gid]
                           @ base:GHC.Word.Word8{tc 32U}
                           @ base:GHC.Word.Word8{tc 32U}
                           pfNew{v axR} [lid]
                           l{v axQ} [lid])
                        peNew{v axS} [lid]))
              };
            blaze-
 builder-0.2.0.1:Blaze.ByteString.Builder.Internal.ModifyChunks{d rr8}
 (rb_d16K{v} [lid]
 :: ghc-prim:GHC.Prim.Addr#{(w) tc 33})
 (bsk{v axU} [lid]
 :: bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
 -> bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
 (nextStep{v axV} [lid]
 :: blaze-builder-0.2.0.1:Blaze.ByteString.Builder.Internal.BuildStep{tc
 rr4}) ->
              let {
                pf'{v axT} [lid]
                  :: base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc 32U}
                [LclId]
                pf'{v axT} [lid] =
                  base:GHC.Ptr.Ptr{v rcL} [gid[DataCon]]
                    @ base:GHC.Word.Word8{tc 32U} rb_d16K{v} [lid] } in
              let {
                fail_d16A{v} [lid]
                  :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                       ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}
                     -> ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                [LclId]
                fail_d16A{v} [lid] =
                  \ (ds_d16B{v} [lid]
                       :: ghc-prim:GHC.Prim.State#{(w) tc 32q}
                            ghc-prim:GHC.Prim.RealWorld{(w) tc 31E}) ->
                    base:GHC.Base.${v 019} [gid]
                      @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                      @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                      (base:GHC.Base.return{v 01T} [gid[ClassOp]]
                         @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
                         $dMonad{v aZw} [lid]
                         @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
 (bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.$WChunk{v reB}
 [gid[DataConWrapper]]
                         (mkbs{v ax6} [lid] @ base:GHC.Word.Word8{tc 32U}
 pf'{v axT} [lid])
                         (bsk{v axU} [lid]
                            (base:GHC.Base.${v 019} [gid]
                               @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                               @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
 (bytestring-0.9.1.8:Data.ByteString.Internal.inlinePerformIO{v riN} [gid]
                                  @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                               (fillNewBuffer{v arO} [lid]
                                  bufSize{v arH} [lid] nextStep{v axV}
 [lid])))) } in
              case base:GHC.Classes.=={v 01L} [gid[ClassOp]]
                     @ (base:GHC.Ptr.Ptr{tc 33A} base:GHC.Word.Word8{tc
 32U})
                     $dEq{v aZt} [lid]
                     pf'{v axT} [lid]
                     pf{v ax4} [lid] {ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}}
              of (wild_B1{v} [lid] :: ghc-prim:GHC.Bool.Bool{(w) tc 3c}) {
                ghc-prim:GHC.Bool.False{(w) d 68} ->
                  fail_d16A{v} [lid] ghc-prim:GHC.Prim.realWorld#{(w) v 0o}
 [gid];
                ghc-prim:GHC.Bool.True{(w) d 6u} ->
                  base:GHC.Base.${v 019} [gid]
                    @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
                    @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                    (base:GHC.Base.return{v 01T} [gid[ClassOp]]
                       @ <nt>ghc-prim:GHC.Types.IO{tc 32I}
                       $dMonad{v aZu} [lid]
                       @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                    (bsk{v axU} [lid]
                       (base:GHC.Base.${v 019} [gid]
                          @ (ghc-prim:GHC.Types.IO{tc 32I}
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                          @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX}
 (bytestring-0.9.1.8:Data.ByteString.Internal.inlinePerformIO{v riN} [gid]
                             @
 bytestring-0.9.1.8:Data.ByteString.Lazy.Internal.ByteString{tc rfX})
                          (fillNewBuffer{v arO} [lid]
                             bufSize{v arH} [lid] nextStep{v axV} [lid])))
              }
          })

 Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4498>
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