Title | Assertion in SegSetGrey when using AMCZ |
Status | closed |
Priority | essential |
Assigned user | Gareth Rees |
Organization | Ravenbrook |
Description | I tried segregating objects in the toy Scheme interpreter, and when I collect, I get this assertion. (Everything is fine if I used AMC, or LO.) MPS ASSERTION FAILURE: SegRankSet(seg) != RankSetEMPTY ../../code/seg.c 270 |
Analysis | Backtrace shows: #3 0x0000000100026e05 in SegSetGrey (seg=0x101ffd590, grey=1) at seg.c:270 #4 0x000000010005d69e in amcFixInPlace (pool=0x101ffe9a0, seg=0x101ffd590, ss=0x7fff5fbff300, refIO=0x7fff5fbff058) at poolamc.c:1675 #5 0x000000010005c40b in AMCFix (pool=0x101ffe9a0, ss=0x7fff5fbff300, seg=0x101ffd590, refIO=0x7fff5fbff058) at poolamc.c:1771 The offending assertion was added by RB in change 179567 [1]. RB says that he forgot about the AMCZ case. |
How found | manual_test |
Evidence | [1] <http://info.ravenbrook.com/infosys/cgi/perfbrowse.cgi?@describe+179567 > |
Created by | Gareth Rees |
Created on | 2012-11-01 16:35:35 |
Last modified by | Gareth Rees |
Last modified on | 2014-04-12 22:08:41 |
History | 2012-11-01 GDR Created. |
Change | Effect | Date | User | Description |
---|---|---|---|---|
180236 | closed | 2012-11-01 17:21:57 | Gareth Rees | AMC can't omit the guard "SegRankSet(seg) != RankSetEMPTY" for calling SegSetGrey, because AMCZ uses segments with an empty rank set. It's OK to call SegSetGrey on a segment with an empty rank set so long as you are not actually setting it to be grey for any traces, so correct the AVER accordingly. |