summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-05-14 20:22:37 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-05-14 20:30:53 +0100
commit230416f8b6f6731064115a2905ad354e27b7d605 (patch)
treebbeaeea54d1b7f90da141be1552404a638d62442 /rts
parent20c39b7743a242fce785e5c6507a8549dba7a8d2 (diff)
downloadhaskell-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.c1
-rw-r--r--rts/sm/CNF.c6
-rw-r--r--rts/sm/MarkWeak.c1
-rw-r--r--rts/sm/Sanity.c1
-rw-r--r--rts/sm/Scav.c4
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;