From 7f476a8a4006acaf0a2ee8b7a9d05f0377cca94b Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Thu, 21 Oct 2010 12:08:53 +0000 Subject: [PATCH] Use takeUniqFromSupply in emitProcWithConvention We were using the supply's unique, and then passing the same supply to initUs_, which sounds like a bug waiting to happen. --- compiler/codeGen/StgCmmMonad.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/codeGen/StgCmmMonad.hs b/compiler/codeGen/StgCmmMonad.hs index f1823bd..f109251 100644 --- a/compiler/codeGen/StgCmmMonad.hs +++ b/compiler/codeGen/StgCmmMonad.hs @@ -604,8 +604,9 @@ emitProcWithConvention :: Convention -> CmmInfo -> CLabel -> CmmFormals -> CmmAGraph -> FCode () emitProcWithConvention conv info lbl args blocks = do { us <- newUniqSupply - ; let (offset, entry) = mkEntry (mkBlockId $ uniqFromSupply us) conv args - blks = initUs_ us $ lgraphOfAGraph $ entry <*> blocks + ; let (uniq, us') = takeUniqFromSupply us + (offset, entry) = mkEntry (mkBlockId uniq) conv args + blks = initUs_ us' $ lgraphOfAGraph $ entry <*> blocks ; let proc_block = CmmProc info lbl args ((offset, Just initUpdFrameOff), blks) ; state <- getState ; setState $ state { cgs_tops = cgs_tops state `snocOL` proc_block } } -- 1.7.10.4