diff --git a/compiler/GHC/StgToCmm/InfoTableProv.hs b/compiler/GHC/StgToCmm/InfoTableProv.hs index fa441104c156444cca7c17812eccac443ba22d90..6728d73784a3dd2e4793d7f8b844799d66886468 100644 --- a/compiler/GHC/StgToCmm/InfoTableProv.hs +++ b/compiler/GHC/StgToCmm/InfoTableProv.hs @@ -83,9 +83,10 @@ emitIpeBufferListNode this_mod ents = do platform = stgToCmmPlatform cfg int n = mkIntCLit platform n - (cg_ipes, strtab) = flip runState emptyStringTable $ do + ((cg_ipes, module_name), strtab) = flip runState emptyStringTable $ do module_name <- lookupStringTable $ ST.pack $ renderWithContext ctx (ppr this_mod) - mapM (toCgIPE platform ctx module_name) ents + cg_ipes <- mapM (toCgIPE platform ctx) ents + return (cg_ipes, module_name) tables :: [CmmStatic] tables = map (CmmStaticLit . CmmLabel . ipeInfoTablePtr) cg_ipes @@ -136,6 +137,9 @@ emitIpeBufferListNode this_mod ents = do -- 'string_table_size' field (decompressed size) , int $ BS.length uncompressed_strings + + -- 'module_name' field + , CmmInt (fromIntegral module_name) W32 ] -- Emit the list of info table pointers @@ -173,10 +177,8 @@ toIpeBufferEntries byte_order cg_ipes = , ipeClosureDesc cg_ipe , ipeTypeDesc cg_ipe , ipeLabel cg_ipe - , ipeModuleName cg_ipe , ipeSrcFile cg_ipe , ipeSrcSpan cg_ipe - , 0 -- padding ] word32Builder :: Word32 -> BSB.Builder @@ -184,8 +186,8 @@ toIpeBufferEntries byte_order cg_ipes = BigEndian -> BSB.word32BE LittleEndian -> BSB.word32LE -toCgIPE :: Platform -> SDocContext -> StrTabOffset -> InfoProvEnt -> State StringTable CgInfoProvEnt -toCgIPE platform ctx module_name ipe = do +toCgIPE :: Platform -> SDocContext -> InfoProvEnt -> State StringTable CgInfoProvEnt +toCgIPE platform ctx ipe = do table_name <- lookupStringTable $ ST.pack $ renderWithContext ctx (pprCLabel platform (infoTablePtr ipe)) closure_desc <- lookupStringTable $ ST.pack $ show (infoProvEntClosureType ipe) type_desc <- lookupStringTable $ ST.pack $ infoTableType ipe @@ -205,7 +207,6 @@ toCgIPE platform ctx module_name ipe = do , ipeClosureDesc = closure_desc , ipeTypeDesc = type_desc , ipeLabel = label - , ipeModuleName = module_name , ipeSrcFile = src_file , ipeSrcSpan = src_span } @@ -216,7 +217,6 @@ data CgInfoProvEnt = CgInfoProvEnt , ipeClosureDesc :: !StrTabOffset , ipeTypeDesc :: !StrTabOffset , ipeLabel :: !StrTabOffset - , ipeModuleName :: !StrTabOffset , ipeSrcFile :: !StrTabOffset , ipeSrcSpan :: !StrTabOffset } diff --git a/rts/IPE.c b/rts/IPE.c index 1306cef0e0a58e08750a6bfe0a9ab80397625bde..d293ca434feacf771a17cb3c3521da1d49a34ab3 100644 --- a/rts/IPE.c +++ b/rts/IPE.c @@ -108,7 +108,7 @@ static InfoProvEnt ipeBufferEntryToIpe(const IpeBufferListNode *node, uint32_t i .closure_desc = &strings[ent->closure_desc], .ty_desc = &strings[ent->ty_desc], .label = &strings[ent->label], - .module = &strings[ent->module_name], + .module = &strings[node->module_name], .src_file = &strings[ent->src_file], .src_span = &strings[ent->src_span] } diff --git a/rts/include/rts/IPE.h b/rts/include/rts/IPE.h index 18640501b022fdbbc90be99354df21a65f591d11..d1e0d3c88ab02e556c1aea9bc964465c22adedff 100644 --- a/rts/include/rts/IPE.h +++ b/rts/include/rts/IPE.h @@ -56,10 +56,8 @@ typedef struct { StringIdx closure_desc; StringIdx ty_desc; StringIdx label; - StringIdx module_name; StringIdx src_file; StringIdx src_span; - uint32_t _padding; } IpeBufferEntry; GHC_STATIC_ASSERT(sizeof(IpeBufferEntry) % (WORD_SIZE_IN_BITS / 8) == 0, "sizeof(IpeBufferEntry) must be a multiple of the word size"); @@ -83,6 +81,9 @@ typedef struct IpeBufferListNode_ { const char *string_table; StgWord string_table_size; // decompressed size + + // Shared by all entries + StringIdx module_name; } IpeBufferListNode; void registerInfoProvList(IpeBufferListNode *node); diff --git a/testsuite/tests/rts/ipe/ipeEventLog.stderr b/testsuite/tests/rts/ipe/ipeEventLog.stderr index 5d235d59b30b9be540f623eb6527302eccb7002b..a9d0995bb38153ec237b02e7062b3abd3a1cecc5 100644 --- a/testsuite/tests/rts/ipe/ipeEventLog.stderr +++ b/testsuite/tests/rts/ipe/ipeEventLog.stderr @@ -1,20 +1,20 @@ -7f5278bc0740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 -7f5278bc0740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_001, srcloc src_file_001:src_span_001 -7f5278bc0740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_002, srcloc src_file_002:src_span_002 -7f5278bc0740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_003, srcloc src_file_003:src_span_003 -7f5278bc0740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_004, srcloc src_file_004:src_span_004 -7f5278bc0740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_005, srcloc src_file_005:src_span_005 -7f5278bc0740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_006, srcloc src_file_006:src_span_006 -7f5278bc0740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_007, srcloc src_file_007:src_span_007 -7f5278bc0740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_008, srcloc src_file_008:src_span_008 -7f5278bc0740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_009, srcloc src_file_009:src_span_009 -7f5278bc0740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 -7f5278bc0740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_001, srcloc src_file_001:src_span_001 -7f5278bc0740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_002, srcloc src_file_002:src_span_002 -7f5278bc0740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_003, srcloc src_file_003:src_span_003 -7f5278bc0740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_004, srcloc src_file_004:src_span_004 -7f5278bc0740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_005, srcloc src_file_005:src_span_005 -7f5278bc0740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_006, srcloc src_file_006:src_span_006 -7f5278bc0740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_007, srcloc src_file_007:src_span_007 -7f5278bc0740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_008, srcloc src_file_008:src_span_008 -7f5278bc0740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_009, srcloc src_file_009:src_span_009 +7ffff7a4d740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 +7ffff7a4d740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_000, srcloc src_file_001:src_span_001 +7ffff7a4d740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_000, srcloc src_file_002:src_span_002 +7ffff7a4d740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_000, srcloc src_file_003:src_span_003 +7ffff7a4d740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_000, srcloc src_file_004:src_span_004 +7ffff7a4d740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_000, srcloc src_file_005:src_span_005 +7ffff7a4d740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_000, srcloc src_file_006:src_span_006 +7ffff7a4d740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_000, srcloc src_file_007:src_span_007 +7ffff7a4d740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_000, srcloc src_file_008:src_span_008 +7ffff7a4d740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_000, srcloc src_file_009:src_span_009 +7ffff7a4d740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 +7ffff7a4d740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_000, srcloc src_file_001:src_span_001 +7ffff7a4d740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_000, srcloc src_file_002:src_span_002 +7ffff7a4d740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_000, srcloc src_file_003:src_span_003 +7ffff7a4d740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_000, srcloc src_file_004:src_span_004 +7ffff7a4d740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_000, srcloc src_file_005:src_span_005 +7ffff7a4d740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_000, srcloc src_file_006:src_span_006 +7ffff7a4d740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_000, srcloc src_file_007:src_span_007 +7ffff7a4d740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_000, srcloc src_file_008:src_span_008 +7ffff7a4d740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_000, srcloc src_file_009:src_span_009 diff --git a/testsuite/tests/rts/ipe/ipeEventLog_fromMap.stderr b/testsuite/tests/rts/ipe/ipeEventLog_fromMap.stderr index f3cf8170864c393eb2456331d53f07442d14193e..4c94fe5393b45e2a6771625289f9948d07603506 100644 --- a/testsuite/tests/rts/ipe/ipeEventLog_fromMap.stderr +++ b/testsuite/tests/rts/ipe/ipeEventLog_fromMap.stderr @@ -1,68 +1,20 @@ -7f86c4be8740: created capset 0 of type 2 -7f86c4be8740: created capset 1 of type 3 -7f86c4be8740: cap 0: initialised -7f86c4be8740: assigned cap 0 to capset 0 -7f86c4be8740: assigned cap 0 to capset 1 -7f86c4be8740: cap 0: created thread 1[""] -7f86c4be8740: cap 0: running thread 1[""] (ThreadRunGHC) -7f86c4be8740: cap 0: thread 1[""] stopped (stack overflow, size 109) -7f86c4be8740: cap 0: running thread 1[""] (ThreadRunGHC) -7f86c4be8740: cap 0: created thread 2[""] -7f86c4be8740: cap 0: thread 2 has label IOManager on cap 0 -7f86c4be8740: cap 0: thread 1[""] stopped (yielding) -7f86b67fc640: cap 0: running thread 2["IOManager on cap 0"] (ThreadRunGHC) -7f86b67fc640: cap 0: thread 2["IOManager on cap 0"] stopped (yielding) -7f86c4be8740: cap 0: running thread 1[""] (ThreadRunGHC) -7f86c4be8740: cap 0: created thread 3[""] -7f86c4be8740: cap 0: thread 3 has label TimerManager -7f86c4be8740: cap 0: thread 1[""] stopped (finished) -7f86c4be8740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_009, srcloc src_file_009:src_span_009 -7f86c4be8740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_008, srcloc src_file_008:src_span_008 -7f86c4be8740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_007, srcloc src_file_007:src_span_007 -7f86c4be8740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_006, srcloc src_file_006:src_span_006 -7f86c4be8740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_005, srcloc src_file_005:src_span_005 -7f86c4be8740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_004, srcloc src_file_004:src_span_004 -7f86c4be8740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_003, srcloc src_file_003:src_span_003 -7f86c4be8740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_002, srcloc src_file_002:src_span_002 -7f86c4be8740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_001, srcloc src_file_001:src_span_001 -7f86c4be8740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 -7f86c4be8740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_009, srcloc src_file_009:src_span_009 -7f86c4be8740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_008, srcloc src_file_008:src_span_008 -7f86c4be8740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_007, srcloc src_file_007:src_span_007 -7f86c4be8740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_006, srcloc src_file_006:src_span_006 -7f86c4be8740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_005, srcloc src_file_005:src_span_005 -7f86c4be8740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_004, srcloc src_file_004:src_span_004 -7f86c4be8740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_003, srcloc src_file_003:src_span_003 -7f86c4be8740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_002, srcloc src_file_002:src_span_002 -7f86c4be8740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_001, srcloc src_file_001:src_span_001 -7f86c4be8740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 -7f86c4be8740: cap 0: created thread 4[""] -7f86b67fc640: cap 0: running thread 2["IOManager on cap 0"] (ThreadRunGHC) -7f86b67fc640: cap 0: thread 2["IOManager on cap 0"] stopped (suspended while making a foreign call) -7f86b5ffb640: cap 0: running thread 3["TimerManager"] (ThreadRunGHC) -7f86b5ffb640: cap 0: thread 3["TimerManager"] stopped (suspended while making a foreign call) -7f86c4be8740: cap 0: running thread 4[""] (ThreadRunGHC) -7f86c4be8740: cap 0: thread 4[""] stopped (yielding) -7f86c4be8740: cap 0: running thread 4[""] (ThreadRunGHC) -7f86c4be8740: cap 0: thread 4[""] stopped (finished) -7f86b57fa640: cap 0: requesting sequential GC -7f86b57fa640: cap 0: starting GC -7f86b57fa640: cap 0: GC working -7f86b57fa640: cap 0: GC idle -7f86b57fa640: cap 0: GC done -7f86b57fa640: cap 0: GC idle -7f86b57fa640: cap 0: GC done -7f86b57fa640: cap 0: GC idle -7f86b57fa640: cap 0: GC done -7f86b57fa640: cap 0: Memory Return (Current: 6) (Needed: 8) (Returned: 0) -7f86b57fa640: cap 0: all caps stopped for GC -7f86b57fa640: cap 0: finished GC -7f86b5ffb640: cap 0: running thread 3["TimerManager"] (ThreadRunGHC) -7f86b5ffb640: cap 0: thread 3["TimerManager"] stopped (finished) -7f86b67fc640: cap 0: running thread 2["IOManager on cap 0"] (ThreadRunGHC) -7f86b67fc640: cap 0: thread 2["IOManager on cap 0"] stopped (finished) -7f86c4be8740: removed cap 0 from capset 0 -7f86c4be8740: removed cap 0 from capset 1 -7f86c4be8740: cap 0: shutting down -7f86c4be8740: deleted capset 0 -7f86c4be8740: deleted capset 1 +7ffff7a4d740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_000, srcloc src_file_009:src_span_009 +7ffff7a4d740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_000, srcloc src_file_008:src_span_008 +7ffff7a4d740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_000, srcloc src_file_007:src_span_007 +7ffff7a4d740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_000, srcloc src_file_006:src_span_006 +7ffff7a4d740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_000, srcloc src_file_005:src_span_005 +7ffff7a4d740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_000, srcloc src_file_004:src_span_004 +7ffff7a4d740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_000, srcloc src_file_003:src_span_003 +7ffff7a4d740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_000, srcloc src_file_002:src_span_002 +7ffff7a4d740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_000, srcloc src_file_001:src_span_001 +7ffff7a4d740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 +7ffff7a4d740: IPE: table_name table_name_009, closure_desc closure_desc_009, ty_desc ty_desc_009, label label_009, module module_000, srcloc src_file_009:src_span_009 +7ffff7a4d740: IPE: table_name table_name_008, closure_desc closure_desc_008, ty_desc ty_desc_008, label label_008, module module_000, srcloc src_file_008:src_span_008 +7ffff7a4d740: IPE: table_name table_name_007, closure_desc closure_desc_007, ty_desc ty_desc_007, label label_007, module module_000, srcloc src_file_007:src_span_007 +7ffff7a4d740: IPE: table_name table_name_006, closure_desc closure_desc_006, ty_desc ty_desc_006, label label_006, module module_000, srcloc src_file_006:src_span_006 +7ffff7a4d740: IPE: table_name table_name_005, closure_desc closure_desc_005, ty_desc ty_desc_005, label label_005, module module_000, srcloc src_file_005:src_span_005 +7ffff7a4d740: IPE: table_name table_name_004, closure_desc closure_desc_004, ty_desc ty_desc_004, label label_004, module module_000, srcloc src_file_004:src_span_004 +7ffff7a4d740: IPE: table_name table_name_003, closure_desc closure_desc_003, ty_desc ty_desc_003, label label_003, module module_000, srcloc src_file_003:src_span_003 +7ffff7a4d740: IPE: table_name table_name_002, closure_desc closure_desc_002, ty_desc ty_desc_002, label label_002, module module_000, srcloc src_file_002:src_span_002 +7ffff7a4d740: IPE: table_name table_name_001, closure_desc closure_desc_001, ty_desc ty_desc_001, label label_001, module module_000, srcloc src_file_001:src_span_001 +7ffff7a4d740: IPE: table_name table_name_000, closure_desc closure_desc_000, ty_desc ty_desc_000, label label_000, module module_000, srcloc src_file_000:src_span_000 diff --git a/testsuite/tests/rts/ipe/ipeMap.c b/testsuite/tests/rts/ipe/ipeMap.c index 6d3ed1cfd2f8a7989ab9889a2dc0b8fe62239160..a1d8db0296a212ff2009efe71cc6bad051c7832a 100644 --- a/testsuite/tests/rts/ipe/ipeMap.c +++ b/testsuite/tests/rts/ipe/ipeMap.c @@ -53,6 +53,8 @@ HaskellObj shouldFindOneIfItHasBeenRegistered(Capability *cap) { StringTable st; init_string_table(&st); + node->module_name = add_string(&st, "TheModule"); + HaskellObj fortyTwo = UNTAG_CLOSURE(rts_mkInt(cap, 42)); node->next = NULL; node->compressed = 0; @@ -71,7 +73,7 @@ HaskellObj shouldFindOneIfItHasBeenRegistered(Capability *cap) { assertStringsEqual(result.prov.closure_desc, "closure_desc_042"); assertStringsEqual(result.prov.ty_desc, "ty_desc_042"); assertStringsEqual(result.prov.label, "label_042"); - assertStringsEqual(result.prov.module, "module_042"); + assertStringsEqual(result.prov.module, "TheModule"); assertStringsEqual(result.prov.src_file, "src_file_042"); assertStringsEqual(result.prov.src_span, "src_span_042"); @@ -88,6 +90,8 @@ void shouldFindTwoIfTwoHaveBeenRegistered(Capability *cap, StringTable st; init_string_table(&st); + node->module_name = add_string(&st, "TheModule"); + HaskellObj twentyThree = UNTAG_CLOSURE(rts_mkInt8(cap, 23)); node->next = NULL; node->compressed = 0; diff --git a/testsuite/tests/rts/ipe/ipe_lib.c b/testsuite/tests/rts/ipe/ipe_lib.c index 98ce24a38aa634533d4788e03717e5a71f683082..b07ee8b2b25267be608ced9edd0518044f39a9b5 100644 --- a/testsuite/tests/rts/ipe/ipe_lib.c +++ b/testsuite/tests/rts/ipe/ipe_lib.c @@ -48,11 +48,6 @@ IpeBufferEntry makeAnyProvEntry(Capability *cap, StringTable *st, int i) { snprintf(label, labelLength, "label_%03i", i); provEnt.label = add_string(st, label); - unsigned int moduleLength = strlen("module_") + 3 /* digits */ + 1 /* null character */; - char *module = malloc(sizeof(char) * moduleLength); - snprintf(module, moduleLength, "module_%03i", i); - provEnt.module_name = add_string(st, module); - unsigned int srcFileLength = strlen("src_file_") + 3 /* digits */ + 1 /* null character */; char *srcFile = malloc(sizeof(char) * srcFileLength); snprintf(srcFile, srcFileLength, "src_file_%03i", i); @@ -77,6 +72,11 @@ IpeBufferListNode *makeAnyProvEntries(Capability *cap, int start, int end) { StringTable st; init_string_table(&st); + unsigned int moduleLength = strlen("module_") + 3 /* digits */ + 1 /* null character */; + char *module = malloc(sizeof(char) * moduleLength); + snprintf(module, moduleLength, "module_%03i", start); + node->module_name = add_string(&st, module); + // Make the entries and fill the buffers for (int i=start; i < end; i++) { HaskellObj closure = rts_mkInt(cap, 42);