Opened 3 years ago

Closed 3 years ago

#5329 closed bug (fixed)

panic: ASSERT failed! file compiler/stgSyn/CoreToStg.lhs line 968

Reported by: mikhail.vorozhtsov Owned by:
Priority: normal Milestone:
Component: Compiler Version: 7.1
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Compile-time crash Difficulty:
Test Case: simplCore/should_compile/T5329 Blocked By:
Blocking: Related Tickets:

Description

Another crash with -O:

$ ghc-7.3.20110713 -O -fforce-recomp Peano.hs
[1 of 1] Compiling Peano            ( Peano.hs, Peano.o )
WARNING: file compiler/simplCore/SimplCore.lhs line 617
Simplifier baling out after 4 iterations [595, 32, 8, 8] Size = 1634
WARNING: file compiler/simplCore/SimplCore.lhs line 617
Simplifier baling out after 4 iterations [8, 8, 8, 8] Size = 1634
WARNING: file compiler/simplCore/SimplCore.lhs line 617
Simplifier baling out after 4 iterations [8, 8, 8, 8] Size = 1634
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplCore.lhs line 617
Simplifier baling out after 4 iterations [118, 140, 42, 22] Size = 1828
WARNING: file compiler/coreSyn/CoreUtils.lhs line 1235
hash_expr: coercion
WARNING: file compiler/coreSyn/CoreUtils.lhs line 1235
hash_expr: coercion
WARNING: file compiler/coreSyn/CoreUtils.lhs line 1235
hash_expr: coercion
WARNING: file compiler/coreSyn/CoreUtils.lhs line 1235
hash_expr: coercion
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1GL
InScope [(Xu, wild_Xu), (Xw, wild_Xw), (XF, wild_XF),
         (ahc, co_ahc), (ahp, n_ahp), (ahq, m_ahq), (ahr, $dIsPeano_ahr),
         (ahs, $dIsPeano_ahs), (ahw, co_ahw), (ahJ, p_ahJ), (ahK, co_ahK),
         (ahL, $dIsPeano_ahL), (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP),
         (anS, $c$p3PAdd_anS), (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3),
         (ao6, $c$p3PAdd_ao6), (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe),
         (aok, $c$p3PAdd_aok), (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH),
         (awv, co_awv), (d1D3, ds_d1D3), (r5, Peano.$fPHasPredPSucc),
         (r6, Peano.$fPAddPSuccPSucc), (r8, Peano.$fPAddPSuccPZero),
         (r9, Peano.$fPAddPZeroPSucc), (rc, Peano.$fPAddPZeroPZero),
         (rm, Peano.$fIsPeanoPZero), (rx, Peano.$fIsPeanoPSucc),
         (rbE, Peano.pPred), (rbF, Peano.pAddLeftZero),
         (rbG, Peano.pAddRightZero), (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex),
         (s1Ez, a_s1Ez), (s1Ii, a_s1Ii)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1GS
InScope [(Xu, wild_Xu), (Xw, wild_Xw), (XF, wild_XF),
         (ahc, co_ahc), (ahp, n_ahp), (ahq, m_ahq), (ahr, $dIsPeano_ahr),
         (ahs, $dIsPeano_ahs), (ahw, co_ahw), (ahJ, p_ahJ), (ahK, co_ahK),
         (ahL, $dIsPeano_ahL), (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP),
         (anS, $c$p3PAdd_anS), (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3),
         (ao6, $c$p3PAdd_ao6), (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe),
         (aok, $c$p3PAdd_aok), (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH),
         (awn, co_awn), (awv, co_awv), (d1D3, ds_d1D3),
         (r5, Peano.$fPHasPredPSucc), (r6, Peano.$fPAddPSuccPSucc),
         (r8, Peano.$fPAddPSuccPZero), (r9, Peano.$fPAddPZeroPSucc),
         (rc, Peano.$fPAddPZeroPZero), (rm, Peano.$fIsPeanoPZero),
         (rx, Peano.$fIsPeanoPSucc), (rbE, Peano.pPred),
         (rbF, Peano.pAddLeftZero), (rbG, Peano.pAddRightZero),
         (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex), (s1Ez, a_s1Ez),
         (s1Ii, a_s1Ii)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1GL
InScope [(Xu, wild_Xu), (Xw, wild_Xw), (XF, wild_XF), (ahh, p_ahh),
         (ahi, co_ahi), (ahj, $dIsPeano_ahj), (ahp, n_ahp), (ahq, m_ahq),
         (ahr, $dIsPeano_ahr), (ahs, $dIsPeano_ahs), (ahw, co_ahw),
         (ahJ, p_ahJ), (ahK, co_ahK), (ahL, $dIsPeano_ahL),
         (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS),
         (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6),
         (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok),
         (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH), (awv, co_awv),
         (d1CP, ds_d1CP), (d1D3, ds_d1D3), (r5, Peano.$fPHasPredPSucc),
         (r6, Peano.$fPAddPSuccPSucc), (r8, Peano.$fPAddPSuccPZero),
         (r9, Peano.$fPAddPZeroPSucc), (rc, Peano.$fPAddPZeroPZero),
         (rm, Peano.$fIsPeanoPZero), (rx, Peano.$fIsPeanoPSucc),
         (rbE, Peano.pPred), (rbF, Peano.pAddLeftZero),
         (rbG, Peano.pAddRightZero), (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex),
         (s1Ez, a_s1Ez)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1GS
InScope [(Xu, wild_Xu), (Xw, wild_Xw), (XF, wild_XF), (ahh, p_ahh),
         (ahi, co_ahi), (ahj, $dIsPeano_ahj), (ahp, n_ahp), (ahq, m_ahq),
         (ahr, $dIsPeano_ahr), (ahs, $dIsPeano_ahs), (ahw, co_ahw),
         (ahJ, p_ahJ), (ahK, co_ahK), (ahL, $dIsPeano_ahL),
         (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS),
         (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6),
         (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok),
         (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH), (awn, co_awn),
         (awv, co_awv), (d1CP, ds_d1CP), (d1D3, ds_d1D3),
         (r5, Peano.$fPHasPredPSucc), (r6, Peano.$fPAddPSuccPSucc),
         (r8, Peano.$fPAddPSuccPZero), (r9, Peano.$fPAddPZeroPSucc),
         (rc, Peano.$fPAddPZeroPZero), (rm, Peano.$fIsPeanoPZero),
         (rx, Peano.$fIsPeanoPSucc), (rbE, Peano.pPred),
         (rbF, Peano.pAddLeftZero), (rbG, Peano.pAddRightZero),
         (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex), (s1Ez, a_s1Ez)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1H4
InScope [(Xu, wild_Xu), (Xz, wild_Xz), (XG, wild_XG),
         (agV, co_agV), (ahp, n_ahp), (ahq, m_ahq), (ahr, $dIsPeano_ahr),
         (ahs, $dIsPeano_ahs), (ai5, p_ai5), (ai6, co_ai6),
         (ai7, $dIsPeano_ai7), (ai8, co_ai8), (anM, $c$p1PAdd_anM),
         (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS), (anV, $c$p4PAdd_anV),
         (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6), (ao9, $c$p4PAdd_ao9),
         (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok), (aon, $c$p4PAdd_aon),
         (aoH, $cpeano_aoH), (aA1, co_aA1), (d1D1, ds_d1D1),
         (r5, Peano.$fPHasPredPSucc), (r6, Peano.$fPAddPSuccPSucc),
         (r8, Peano.$fPAddPSuccPZero), (r9, Peano.$fPAddPZeroPSucc),
         (rc, Peano.$fPAddPZeroPZero), (rm, Peano.$fIsPeanoPZero),
         (rx, Peano.$fIsPeanoPSucc), (rbE, Peano.pPred),
         (rbF, Peano.pAddLeftZero), (rbG, Peano.pAddRightZero),
         (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex), (s1Ez, a_s1Ez),
         (s1Ik, a_s1Ik)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1Hb
InScope [(Xu, wild_Xu), (Xz, wild_Xz), (XG, wild_XG),
         (agV, co_agV), (ahp, n_ahp), (ahq, m_ahq), (ahr, $dIsPeano_ahr),
         (ahs, $dIsPeano_ahs), (ai5, p_ai5), (ai6, co_ai6),
         (ai7, $dIsPeano_ai7), (ai8, co_ai8), (anM, $c$p1PAdd_anM),
         (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS), (anV, $c$p4PAdd_anV),
         (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6), (ao9, $c$p4PAdd_ao9),
         (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok), (aon, $c$p4PAdd_aon),
         (aoH, $cpeano_aoH), (azT, co_azT), (aA1, co_aA1), (d1D1, ds_d1D1),
         (r5, Peano.$fPHasPredPSucc), (r6, Peano.$fPAddPSuccPSucc),
         (r8, Peano.$fPAddPSuccPZero), (r9, Peano.$fPAddPZeroPSucc),
         (rc, Peano.$fPAddPZeroPZero), (rm, Peano.$fIsPeanoPZero),
         (rx, Peano.$fIsPeanoPSucc), (rbE, Peano.pPred),
         (rbF, Peano.pAddLeftZero), (rbG, Peano.pAddRightZero),
         (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex), (s1Ez, a_s1Ez),
         (s1Ik, a_s1Ik)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1H4
InScope [(Xu, wild_Xu), (Xz, wild_Xz), (XG, wild_XG), (ah0, p_ah0),
         (ah1, co_ah1), (ah2, $dIsPeano_ah2), (ahp, n_ahp), (ahq, m_ahq),
         (ahr, $dIsPeano_ahr), (ahs, $dIsPeano_ahs), (ai5, p_ai5),
         (ai6, co_ai6), (ai7, $dIsPeano_ai7), (ai8, co_ai8),
         (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS),
         (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6),
         (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok),
         (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH), (aA1, co_aA1),
         (d1CL, ds_d1CL), (d1D1, ds_d1D1), (r5, Peano.$fPHasPredPSucc),
         (r6, Peano.$fPAddPSuccPSucc), (r8, Peano.$fPAddPSuccPZero),
         (r9, Peano.$fPAddPZeroPSucc), (rc, Peano.$fPAddPZeroPZero),
         (rm, Peano.$fIsPeanoPZero), (rx, Peano.$fIsPeanoPSucc),
         (rbE, Peano.pPred), (rbF, Peano.pAddLeftZero),
         (rbG, Peano.pAddRightZero), (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex),
         (s1Ez, a_s1Ez)]
WARNING: file compiler/coreSyn/CoreSubst.lhs line 256
CoreSubst.lookupIdSubst CSE.lookupSubst ww_s1Hb
InScope [(Xu, wild_Xu), (Xz, wild_Xz), (XG, wild_XG), (ah0, p_ah0),
         (ah1, co_ah1), (ah2, $dIsPeano_ah2), (ahp, n_ahp), (ahq, m_ahq),
         (ahr, $dIsPeano_ahr), (ahs, $dIsPeano_ahs), (ai5, p_ai5),
         (ai6, co_ai6), (ai7, $dIsPeano_ai7), (ai8, co_ai8),
         (anM, $c$p1PAdd_anM), (anP, $c$p2PAdd_anP), (anS, $c$p3PAdd_anS),
         (anV, $c$p4PAdd_anV), (ao3, $c$p2PAdd_ao3), (ao6, $c$p3PAdd_ao6),
         (ao9, $c$p4PAdd_ao9), (aoe, $c$p1PAdd_aoe), (aok, $c$p3PAdd_aok),
         (aon, $c$p4PAdd_aon), (aoH, $cpeano_aoH), (azT, co_azT),
         (aA1, co_aA1), (d1CL, ds_d1CL), (d1D1, ds_d1D1),
         (r5, Peano.$fPHasPredPSucc), (r6, Peano.$fPAddPSuccPSucc),
         (r8, Peano.$fPAddPSuccPZero), (r9, Peano.$fPAddPZeroPSucc),
         (rc, Peano.$fPAddPZeroPZero), (rm, Peano.$fIsPeanoPZero),
         (rx, Peano.$fIsPeanoPSucc), (rbE, Peano.pPred),
         (rbF, Peano.pAddLeftZero), (rbG, Peano.pAddRightZero),
         (rbH, Peano.pAddSucc), (s1Ex, a_s1Ex), (s1Ez, a_s1Ez)]
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GL
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1GS
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1H4
WARNING: file compiler/simplCore/SimplEnv.lhs line 525 ww_s1Hb
WARNING: file compiler/simplCore/SimplCore.lhs line 617
Simplifier baling out after 4 iterations [48, 8, 8, 8] Size = 1818
ghc: panic! (the 'impossible' happened)
  (GHC version 7.3.20110713 for x86_64-unknown-linux):
	ASSERT failed! file compiler/stgSyn/CoreToStg.lhs line 968
ww_s1GS{v} [lid]

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

Attachments (1)

Peano.hs (4.1 KB) - added by mikhail.vorozhtsov 3 years ago.

Download all attachments as: .zip

Change History (2)

Changed 3 years ago by mikhail.vorozhtsov

comment:1 Changed 3 years ago by simonpj

  • Resolution set to fixed
  • Status changed from new to closed
  • Test Case set to simplCore/should_compile/T5329

Thanks. Always try -dcore-lint first; it often gives a much more informative diagnostic.

I believe this bug is fixed by the same patch as #5315. At least it works for me in HEAD. So I'll close. Re-open if you disagree.

I've added it as a regression test though.

Simon

Note: See TracTickets for help on using tickets.