diff options
Diffstat (limited to 'rts/sm/CNF.c')
-rw-r--r-- | rts/sm/CNF.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/sm/CNF.c b/rts/sm/CNF.c index f740d05e10..bdb018d036 100644 --- a/rts/sm/CNF.c +++ b/rts/sm/CNF.c @@ -689,14 +689,17 @@ verify_consistency_block (StgCompactNFData *str, StgCompactNFDataBlock *block) switch (info->type) { case CONSTR_1_0: check_object_in_compact(str, UNTAG_CLOSURE(q->payload[0])); + /* fallthrough */ case CONSTR_0_1: p += sizeofW(StgClosure) + 1; break; case CONSTR_2_0: check_object_in_compact(str, UNTAG_CLOSURE(q->payload[1])); + /* fallthrough */ case CONSTR_1_1: check_object_in_compact(str, UNTAG_CLOSURE(q->payload[0])); + /* fallthrough */ case CONSTR_0_2: p += sizeofW(StgClosure) + 2; break; @@ -928,6 +931,7 @@ fixup_block(StgCompactNFDataBlock *block, StgWord *fixup_table, uint32_t count) if (!fixup_one_pointer(fixup_table, count, &((StgClosure*)p)->payload[0])) return false; + /* fallthrough */ case CONSTR_0_1: p += sizeofW(StgClosure) + 1; break; @@ -936,10 +940,12 @@ fixup_block(StgCompactNFDataBlock *block, StgWord *fixup_table, uint32_t count) if (!fixup_one_pointer(fixup_table, count, &((StgClosure*)p)->payload[1])) return false; + /* fallthrough */ case CONSTR_1_1: if (!fixup_one_pointer(fixup_table, count, &((StgClosure*)p)->payload[0])) return false; + /* fallthrough */ case CONSTR_0_2: p += sizeofW(StgClosure) + 2; break; |