diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-05-14 20:22:37 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-05-14 20:30:53 +0100 |
commit | 230416f8b6f6731064115a2905ad354e27b7d605 (patch) | |
tree | bbeaeea54d1b7f90da141be1552404a638d62442 /rts | |
parent | 20c39b7743a242fce785e5c6507a8549dba7a8d2 (diff) | |
download | haskell-230416f8b6f6731064115a2905ad354e27b7d605.tar.gz |
rts: annotate switch/case with '/* fallthrough */'
Fixes gcc-7.1.0 warnings of form:
rts/sm/Scav.c:559:9: error:
error: this statement may fall through [-Werror=implicit-fallthrough=]
scavenge_fun_srt(info);
^~~~~~~~~~~~~~~~~~~~~~
Many of places are indeed unobvious and some are
already annotated by comments.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'rts')
-rw-r--r-- | rts/RaiseAsync.c | 1 | ||||
-rw-r--r-- | rts/sm/CNF.c | 6 | ||||
-rw-r--r-- | rts/sm/MarkWeak.c | 1 | ||||
-rw-r--r-- | rts/sm/Sanity.c | 1 | ||||
-rw-r--r-- | rts/sm/Scav.c | 4 |
5 files changed, 13 insertions, 0 deletions
diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c index 31cc91587d..e04a875e49 100644 --- a/rts/RaiseAsync.c +++ b/rts/RaiseAsync.c @@ -459,6 +459,7 @@ check_target: // fall to next } #endif + /* fallthrough */ case BlockedOnCCall: blockedThrowTo(cap,target,msg); return THROWTO_BLOCKED; 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; diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c index c7a87a2d76..691e56af5f 100644 --- a/rts/sm/MarkWeak.c +++ b/rts/sm/MarkWeak.c @@ -155,6 +155,7 @@ traverseWeakPtrList(void) // otherwise, fall through... } + /* fallthrough */ case WeakPtrs: { diff --git a/rts/sm/Sanity.c b/rts/sm/Sanity.c index 6bfa1cb494..53b101024a 100644 --- a/rts/sm/Sanity.c +++ b/rts/sm/Sanity.c @@ -102,6 +102,7 @@ checkStackFrame( StgPtr c ) case UPDATE_FRAME: ASSERT(LOOKS_LIKE_CLOSURE_PTR(((StgUpdateFrame*)c)->updatee)); + /* fallthrough */ case ATOMICALLY_FRAME: case CATCH_RETRY_FRAME: case CATCH_STM_FRAME: diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c index ab7b69f6a8..d26a893af8 100644 --- a/rts/sm/Scav.c +++ b/rts/sm/Scav.c @@ -557,6 +557,7 @@ scavenge_block (bdescr *bd) case FUN_1_0: scavenge_fun_srt(info); + /* fallthrough */ case CONSTR_1_0: evacuate(&((StgClosure *)p)->payload[0]); p += sizeofW(StgHeader) + 1; @@ -569,6 +570,7 @@ scavenge_block (bdescr *bd) case FUN_0_1: scavenge_fun_srt(info); + /* fallthrough */ case CONSTR_0_1: p += sizeofW(StgHeader) + 1; break; @@ -580,6 +582,7 @@ scavenge_block (bdescr *bd) case FUN_0_2: scavenge_fun_srt(info); + /* fallthrough */ case CONSTR_0_2: p += sizeofW(StgHeader) + 2; break; @@ -592,6 +595,7 @@ scavenge_block (bdescr *bd) case FUN_1_1: scavenge_fun_srt(info); + /* fallthrough */ case CONSTR_1_1: evacuate(&((StgClosure *)p)->payload[0]); p += sizeofW(StgHeader) + 2; |