diff --git a/configure b/configure index 83abe872aa6..4dfe4fcfe1c 100755 --- a/configure +++ b/configure @@ -5552,6 +5552,97 @@ if test x"$pgac_cv_prog_CXX_cxxflags__Wmissing_format_attribute" = x"yes"; then fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wimplicit-fallthrough=4, for CFLAGS" >&5 +$as_echo_n "checking whether ${CC} supports -Wimplicit-fallthrough=4, for CFLAGS... " >&6; } +if ${pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CFLAGS=$CFLAGS +pgac_save_CC=$CC +CC=${CC} +CFLAGS="${CFLAGS} -Wimplicit-fallthrough=4" +ac_save_c_werror_flag=$ac_c_werror_flag +ac_c_werror_flag=yes +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4=yes +else + pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_c_werror_flag=$ac_save_c_werror_flag +CFLAGS="$pgac_save_CFLAGS" +CC="$pgac_save_CC" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4" >&5 +$as_echo "$pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4" >&6; } +if test x"$pgac_cv_prog_CC_cflags__Wimplicit_fallthrough_4" = x"yes"; then + CFLAGS="${CFLAGS} -Wimplicit-fallthrough=4" +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CXX} supports -Wimplicit-fallthrough=4, for CXXFLAGS" >&5 +$as_echo_n "checking whether ${CXX} supports -Wimplicit-fallthrough=4, for CXXFLAGS... " >&6; } +if ${pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4+:} false; then : + $as_echo_n "(cached) " >&6 +else + pgac_save_CXXFLAGS=$CXXFLAGS +pgac_save_CXX=$CXX +CXX=${CXX} +CXXFLAGS="${CXXFLAGS} -Wimplicit-fallthrough=4" +ac_save_cxx_werror_flag=$ac_cxx_werror_flag +ac_cxx_werror_flag=yes +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4=yes +else + pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_cxx_werror_flag=$ac_save_cxx_werror_flag +CXXFLAGS="$pgac_save_CXXFLAGS" +CXX="$pgac_save_CXX" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4" >&5 +$as_echo "$pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4" >&6; } +if test x"$pgac_cv_prog_CXX_cxxflags__Wimplicit_fallthrough_4" = x"yes"; then + CXXFLAGS="${CXXFLAGS} -Wimplicit-fallthrough=4" +fi + + # This was included in -Wall/-Wformat in older GCC versions { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} supports -Wformat-security, for CFLAGS" >&5 diff --git a/configure.in b/configure.in index ecdf1723967..94fba67261c 100644 --- a/configure.in +++ b/configure.in @@ -496,6 +496,8 @@ if test "$GCC" = yes -a "$ICC" = no; then PGAC_PROG_CXX_CFLAGS_OPT([-Wendif-labels]) PGAC_PROG_CC_CFLAGS_OPT([-Wmissing-format-attribute]) PGAC_PROG_CXX_CFLAGS_OPT([-Wmissing-format-attribute]) + PGAC_PROG_CC_CFLAGS_OPT([-Wimplicit-fallthrough=4]) + PGAC_PROG_CXX_CFLAGS_OPT([-Wimplicit-fallthrough=4]) # This was included in -Wall/-Wformat in older GCC versions PGAC_PROG_CC_CFLAGS_OPT([-Wformat-security]) PGAC_PROG_CXX_CFLAGS_OPT([-Wformat-security]) diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c index 56b35622f1a..f819706878f 100644 --- a/src/backend/access/heap/heapam_handler.c +++ b/src/backend/access/heap/heapam_handler.c @@ -814,7 +814,7 @@ heapam_relation_copy_for_cluster(Relation OldHeap, Relation NewHeap, break; case HEAPTUPLE_RECENTLY_DEAD: *tups_recently_dead += 1; - /* fall through */ + /* FALLTHROUGH */ case HEAPTUPLE_LIVE: /* Live or recently dead, must copy it */ isdead = false; diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 5565e6fc197..a6f848511fb 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -615,7 +615,7 @@ findDependentObjects(const ObjectAddress *object, break; /* Otherwise, treat this like an internal dependency */ - /* FALL THRU */ + /* FALLTHROUGH */ case DEPENDENCY_INTERNAL: diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index a518b552b3d..30142552e2e 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -12467,7 +12467,7 @@ ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE lock case RELKIND_TOASTVALUE: if (recursing) break; - /* FALL THRU */ + /* FALLTHROUGH */ default: ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index ed551ab73aa..8222cea35b8 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -3877,7 +3877,7 @@ AfterTriggerExecute(EState *estate, trig_tuple_slot2)) elog(ERROR, "failed to fetch tuple2 for AFTER trigger"); } - /* fall through */ + /* FALLTHROUGH */ case AFTER_TRIGGER_FDW_REUSE: /* diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 5da13ada726..4516c6346bd 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -256,7 +256,7 @@ MultiExecParallelHash(HashState *node) * way, wait for everyone to arrive here so we can proceed. */ BarrierArriveAndWait(build_barrier, WAIT_EVENT_HASH_BUILD_ALLOCATING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_BUILD_HASHING_INNER: @@ -1181,13 +1181,13 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable) /* All other participants just flush their tuples to disk. */ ExecParallelHashCloseBatchAccessors(hashtable); } - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BATCHES_ALLOCATING: /* Wait for the above to be finished. */ BarrierArriveAndWait(&pstate->grow_batches_barrier, WAIT_EVENT_HASH_GROW_BATCHES_ALLOCATING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BATCHES_REPARTITIONING: /* Make sure that we have the current dimensions and buckets. */ @@ -1200,7 +1200,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable) /* Wait for the above to be finished. */ BarrierArriveAndWait(&pstate->grow_batches_barrier, WAIT_EVENT_HASH_GROW_BATCHES_REPARTITIONING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BATCHES_DECIDING: @@ -1255,7 +1255,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable) dsa_free(hashtable->area, pstate->old_batches); pstate->old_batches = InvalidDsaPointer; } - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BATCHES_FINISHING: /* Wait for the above to complete. */ @@ -1533,13 +1533,13 @@ ExecParallelHashIncreaseNumBuckets(HashJoinTable hashtable) /* Clear the flag. */ pstate->growth = PHJ_GROWTH_OK; } - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BUCKETS_ALLOCATING: /* Wait for the above to complete. */ BarrierArriveAndWait(&pstate->grow_buckets_barrier, WAIT_EVENT_HASH_GROW_BUCKETS_ALLOCATING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_GROW_BUCKETS_REINSERTING: /* Reinsert all tuples into the hash table. */ diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index cc8edacdd01..6159a6957f4 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -340,7 +340,7 @@ ExecHashJoinImpl(PlanState *pstate, bool parallel) else node->hj_JoinState = HJ_NEED_NEW_OUTER; - /* FALL THRU */ + /* FALLTHROUGH */ case HJ_NEED_NEW_OUTER: @@ -413,7 +413,7 @@ ExecHashJoinImpl(PlanState *pstate, bool parallel) /* OK, let's scan the bucket for matches */ node->hj_JoinState = HJ_SCAN_BUCKET; - /* FALL THRU */ + /* FALLTHROUGH */ case HJ_SCAN_BUCKET: @@ -1137,13 +1137,13 @@ ExecParallelHashJoinNewBatch(HashJoinState *hjstate) if (BarrierArriveAndWait(batch_barrier, WAIT_EVENT_HASH_BATCH_ELECTING)) ExecParallelHashTableAlloc(hashtable, batchno); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_BATCH_ALLOCATING: /* Wait for allocation to complete. */ BarrierArriveAndWait(batch_barrier, WAIT_EVENT_HASH_BATCH_ALLOCATING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_BATCH_LOADING: /* Start (or join in) loading tuples. */ @@ -1163,7 +1163,7 @@ ExecParallelHashJoinNewBatch(HashJoinState *hjstate) sts_end_parallel_scan(inner_tuples); BarrierArriveAndWait(batch_barrier, WAIT_EVENT_HASH_BATCH_LOADING); - /* Fall through. */ + /* FALLTHROUGH */ case PHJ_BATCH_PROBING: diff --git a/src/backend/executor/nodeLimit.c b/src/backend/executor/nodeLimit.c index d85cf7d93e8..371b15c14a7 100644 --- a/src/backend/executor/nodeLimit.c +++ b/src/backend/executor/nodeLimit.c @@ -69,7 +69,7 @@ ExecLimit(PlanState *pstate) */ recompute_limits(node); - /* FALL THRU */ + /* FALLTHROUGH */ case LIMIT_RESCAN: @@ -216,7 +216,7 @@ ExecLimit(PlanState *pstate) } Assert(node->lstate == LIMIT_WINDOWEND_TIES); - /* FALL THRU */ + /* FALLTHROUGH */ case LIMIT_WINDOWEND_TIES: if (ScanDirectionIsForward(direction)) diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 02b6c3f127c..bf9d0cca563 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -2123,7 +2123,7 @@ pam_passwd_conv_proc(int num_msg, const struct pam_message **msg, ereport(LOG, (errmsg("error from underlying PAM layer: %s", msg[i]->msg))); - /* FALL THROUGH */ + /* FALLTHROUGH */ case PAM_TEXT_INFO: /* we don't bother to log TEXT_INFO messages */ if ((reply[i].resp = strdup("")) == NULL) diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 0c6fe0115a1..55b1b788720 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -1582,7 +1582,7 @@ find_nonnullable_rels_walker(Node *node, bool top_level) * the intersection of the sets of nonnullable rels, just as * for OR. Fall through to share code. */ - /* FALL THRU */ + /* FALLTHROUGH */ case OR_EXPR: /* @@ -1807,7 +1807,7 @@ find_nonnullable_vars_walker(Node *node, bool top_level) * the intersection of the sets of nonnullable vars, just as * for OR. Fall through to share code. */ - /* FALL THRU */ + /* FALLTHROUGH */ case OR_EXPR: /* diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 75c122fe348..cbd5780a69d 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -737,7 +737,7 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column) errmsg("primary key constraints are not supported on foreign tables"), parser_errposition(cxt->pstate, constraint->location))); - /* FALL THRU */ + /* FALLTHROUGH */ case CONSTR_UNIQUE: if (cxt->isforeign) diff --git a/src/backend/partitioning/partprune.c b/src/backend/partitioning/partprune.c index eac52e6ec85..473423de8d7 100644 --- a/src/backend/partitioning/partprune.c +++ b/src/backend/partitioning/partprune.c @@ -2571,7 +2571,7 @@ get_matching_list_bounds(PartitionPruneContext *context, case BTGreaterEqualStrategyNumber: inclusive = true; - /* fall through */ + /* FALLTHROUGH */ case BTGreaterStrategyNumber: off = partition_list_bsearch(partsupfunc, partcollation, @@ -2606,7 +2606,7 @@ get_matching_list_bounds(PartitionPruneContext *context, case BTLessEqualStrategyNumber: inclusive = true; - /* fall through */ + /* FALLTHROUGH */ case BTLessStrategyNumber: off = partition_list_bsearch(partsupfunc, partcollation, @@ -2853,7 +2853,7 @@ get_matching_range_bounds(PartitionPruneContext *context, case BTGreaterEqualStrategyNumber: inclusive = true; - /* fall through */ + /* FALLTHROUGH */ case BTGreaterStrategyNumber: /* @@ -2934,7 +2934,7 @@ get_matching_range_bounds(PartitionPruneContext *context, case BTLessEqualStrategyNumber: inclusive = true; - /* fall through */ + /* FALLTHROUGH */ case BTLessStrategyNumber: /* diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index e19d5dc1a64..32f0ce936bb 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -5902,19 +5902,19 @@ bgworker_should_start_now(BgWorkerStartTime start_time) case PM_RUN: if (start_time == BgWorkerStart_RecoveryFinished) return true; - /* fall through */ + /* FALLTHROUGH */ case PM_HOT_STANDBY: if (start_time == BgWorkerStart_ConsistentState) return true; - /* fall through */ + /* FALLTHROUGH */ case PM_RECOVERY: case PM_STARTUP: case PM_INIT: if (start_time == BgWorkerStart_PostmasterStart) return true; - /* fall through */ + /* FALLTHROUGH */ } diff --git a/src/backend/regex/regc_pg_locale.c b/src/backend/regex/regc_pg_locale.c index 3cc2d4d3627..d4fe01f2d1f 100644 --- a/src/backend/regex/regc_pg_locale.c +++ b/src/backend/regex/regc_pg_locale.c @@ -303,7 +303,7 @@ pg_wc_isdigit(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswdigit((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isdigit((unsigned char) c)); @@ -312,7 +312,7 @@ pg_wc_isdigit(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswdigit_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -339,7 +339,7 @@ pg_wc_isalpha(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswalpha((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isalpha((unsigned char) c)); @@ -348,7 +348,7 @@ pg_wc_isalpha(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswalpha_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -375,7 +375,7 @@ pg_wc_isalnum(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswalnum((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isalnum((unsigned char) c)); @@ -384,7 +384,7 @@ pg_wc_isalnum(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswalnum_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -411,7 +411,7 @@ pg_wc_isupper(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswupper((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isupper((unsigned char) c)); @@ -420,7 +420,7 @@ pg_wc_isupper(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswupper_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -447,7 +447,7 @@ pg_wc_islower(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswlower((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && islower((unsigned char) c)); @@ -456,7 +456,7 @@ pg_wc_islower(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswlower_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -483,7 +483,7 @@ pg_wc_isgraph(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswgraph((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isgraph((unsigned char) c)); @@ -492,7 +492,7 @@ pg_wc_isgraph(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswgraph_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -519,7 +519,7 @@ pg_wc_isprint(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswprint((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isprint((unsigned char) c)); @@ -528,7 +528,7 @@ pg_wc_isprint(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswprint_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -555,7 +555,7 @@ pg_wc_ispunct(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswpunct((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && ispunct((unsigned char) c)); @@ -564,7 +564,7 @@ pg_wc_ispunct(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswpunct_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -591,7 +591,7 @@ pg_wc_isspace(pg_wchar c) case PG_REGEX_LOCALE_WIDE: if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswspace((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: return (c <= (pg_wchar) UCHAR_MAX && isspace((unsigned char) c)); @@ -600,7 +600,7 @@ pg_wc_isspace(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return iswspace_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T return (c <= (pg_wchar) UCHAR_MAX && @@ -631,7 +631,7 @@ pg_wc_toupper(pg_wchar c) return pg_ascii_toupper((unsigned char) c); if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towupper((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: /* force C behavior for ASCII characters, per comments above */ if (c <= (pg_wchar) 127) @@ -644,7 +644,7 @@ pg_wc_toupper(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towupper_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T if (c <= (pg_wchar) UCHAR_MAX) @@ -675,7 +675,7 @@ pg_wc_tolower(pg_wchar c) return pg_ascii_tolower((unsigned char) c); if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towlower((wint_t) c); - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE: /* force C behavior for ASCII characters, per comments above */ if (c <= (pg_wchar) 127) @@ -688,7 +688,7 @@ pg_wc_tolower(pg_wchar c) if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towlower_l((wint_t) c, pg_regex_locale->info.lt); #endif - /* FALL THRU */ + /* FALLTHROUGH */ case PG_REGEX_LOCALE_1BYTE_L: #ifdef HAVE_LOCALE_T if (c <= (pg_wchar) UCHAR_MAX) diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 4594cf95097..02f0199ba1b 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -1589,7 +1589,7 @@ ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, change = specinsert; change->action = REORDER_BUFFER_CHANGE_INSERT; - /* intentionally fall through */ + /* FALLTHROUGH */ case REORDER_BUFFER_CHANGE_INSERT: case REORDER_BUFFER_CHANGE_UPDATE: case REORDER_BUFFER_CHANGE_DELETE: diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index d69fb90132d..faca7327134 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -215,7 +215,7 @@ WalReceiverMain(void) case WALRCV_STOPPING: /* If we've already been requested to stop, don't start up. */ walrcv->walRcvState = WALRCV_STOPPED; - /* fall through */ + /* FALLTHROUGH */ case WALRCV_STOPPED: SpinLockRelease(&walrcv->mutex); diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c index 4afad83539c..bf68852bf0c 100644 --- a/src/backend/replication/walreceiverfuncs.c +++ b/src/backend/replication/walreceiverfuncs.c @@ -183,7 +183,7 @@ ShutdownWalRcv(void) case WALRCV_WAITING: case WALRCV_RESTARTING: walrcv->walRcvState = WALRCV_STOPPING; - /* fall through */ + /* FALLTHROUGH */ case WALRCV_STOPPING: walrcvpid = walrcv->pid; break; diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index b1f7f6e2d01..eee544f8eb5 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -1883,7 +1883,7 @@ ExecDropStmt(DropStmt *stmt, bool isTopLevel) if (stmt->concurrent) PreventInTransactionBlock(isTopLevel, "DROP INDEX CONCURRENTLY"); - /* fall through */ + /* FALLTHROUGH */ case OBJECT_TABLE: case OBJECT_SEQUENCE: diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index aab5802edb4..657b8f03766 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -3425,7 +3425,7 @@ DCH_from_char(FormatNode *node, const char *in, TmFromChar *out, case DCH_FF5: case DCH_FF6: out->ff = n->key->id - DCH_FF1 + 1; - /* fall through */ + /* FALLTHROUGH */ case DCH_US: /* microsecond */ len = from_char_parse_int_len(&out->us, &s, n->key->id == DCH_US ? 6 : diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c index 04b70c805b4..52ec80af045 100644 --- a/src/backend/utils/adt/jsonb_util.c +++ b/src/backend/utils/adt/jsonb_util.c @@ -637,7 +637,7 @@ pushJsonbValueScalar(JsonbParseState **pstate, JsonbIteratorToken seq, break; case WJB_END_OBJECT: uniqueifyJsonbObject(&(*pstate)->contVal); - /* fall through! */ + /* FALLTHROUGH */ case WJB_END_ARRAY: /* Steps here common to WJB_END_OBJECT case */ Assert(!scalarVal); diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 4caffb58040..d28d3c1628b 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -3866,14 +3866,14 @@ timestamp_trunc(PG_FUNCTION_ARGS) tm->tm_year = ((tm->tm_year + 999) / 1000) * 1000 - 999; else tm->tm_year = -((999 - (tm->tm_year - 1)) / 1000) * 1000 + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_CENTURY: /* see comments in timestamptz_trunc */ if (tm->tm_year > 0) tm->tm_year = ((tm->tm_year + 99) / 100) * 100 - 99; else tm->tm_year = -((99 - (tm->tm_year - 1)) / 100) * 100 + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DECADE: /* see comments in timestamptz_trunc */ if (val != DTK_MILLENNIUM && val != DTK_CENTURY) @@ -3883,25 +3883,25 @@ timestamp_trunc(PG_FUNCTION_ARGS) else tm->tm_year = -((8 - (tm->tm_year - 1)) / 10) * 10; } - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_YEAR: tm->tm_mon = 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_QUARTER: tm->tm_mon = (3 * ((tm->tm_mon - 1) / 3)) + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MONTH: tm->tm_mday = 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DAY: tm->tm_hour = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_HOUR: tm->tm_min = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MINUTE: tm->tm_sec = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_SECOND: fsec = 0; break; @@ -4007,14 +4007,14 @@ timestamptz_trunc_internal(text *units, TimestampTz timestamp, pg_tz *tzp) tm->tm_year = ((tm->tm_year + 999) / 1000) * 1000 - 999; else tm->tm_year = -((999 - (tm->tm_year - 1)) / 1000) * 1000 + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_CENTURY: /* truncating to the century? as above: -100, 1, 101... */ if (tm->tm_year > 0) tm->tm_year = ((tm->tm_year + 99) / 100) * 100 - 99; else tm->tm_year = -((99 - (tm->tm_year - 1)) / 100) * 100 + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DECADE: /* @@ -4028,26 +4028,26 @@ timestamptz_trunc_internal(text *units, TimestampTz timestamp, pg_tz *tzp) else tm->tm_year = -((8 - (tm->tm_year - 1)) / 10) * 10; } - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_YEAR: tm->tm_mon = 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_QUARTER: tm->tm_mon = (3 * ((tm->tm_mon - 1) / 3)) + 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MONTH: tm->tm_mday = 1; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DAY: tm->tm_hour = 0; redotz = true; /* for all cases >= DAY */ - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_HOUR: tm->tm_min = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MINUTE: tm->tm_sec = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_SECOND: fsec = 0; break; @@ -4195,33 +4195,33 @@ interval_trunc(PG_FUNCTION_ARGS) case DTK_MILLENNIUM: /* caution: C division may have negative remainder */ tm->tm_year = (tm->tm_year / 1000) * 1000; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_CENTURY: /* caution: C division may have negative remainder */ tm->tm_year = (tm->tm_year / 100) * 100; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DECADE: /* caution: C division may have negative remainder */ tm->tm_year = (tm->tm_year / 10) * 10; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_YEAR: tm->tm_mon = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_QUARTER: tm->tm_mon = 3 * (tm->tm_mon / 3); - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MONTH: tm->tm_mday = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_DAY: tm->tm_hour = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_HOUR: tm->tm_min = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_MINUTE: tm->tm_sec = 0; - /* FALL THRU */ + /* FALLTHROUGH */ case DTK_SECOND: fsec = 0; break; diff --git a/src/backend/utils/adt/tsginidx.c b/src/backend/utils/adt/tsginidx.c index 2d656168fca..a6d7b9805ad 100644 --- a/src/backend/utils/adt/tsginidx.c +++ b/src/backend/utils/adt/tsginidx.c @@ -264,7 +264,7 @@ TS_execute_ternary(GinChkVal *gcv, QueryItem *curitem, bool in_phrase) /* Pass down in_phrase == true in case there's a NOT below */ in_phrase = true; - /* FALL THRU */ + /* FALLTHROUGH */ case OP_AND: val1 = TS_execute_ternary(gcv, curitem + curitem->qoperator.left, diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c index 5b4b9e487f5..254c49ef9f2 100644 --- a/src/backend/utils/hash/dynahash.c +++ b/src/backend/utils/hash/dynahash.c @@ -1042,7 +1042,7 @@ hash_search_with_hash_value(HTAB *hashp, case HASH_ENTER_NULL: /* ENTER_NULL does not work with palloc-based allocator */ Assert(hashp->alloc != DynaHashAlloc); - /* FALL THRU */ + /* FALLTHROUGH */ case HASH_ENTER: /* Return existing element if found, else create one */ diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index a8e13cacfde..4a162316057 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -1263,7 +1263,7 @@ pg_utf8_increment(unsigned char *charptr, int length) charptr[3]++; break; } - /* FALL THRU */ + /* FALLTHROUGH */ case 3: a = charptr[2]; if (a < 0xBF) @@ -1271,7 +1271,7 @@ pg_utf8_increment(unsigned char *charptr, int length) charptr[2]++; break; } - /* FALL THRU */ + /* FALLTHROUGH */ case 2: a = charptr[1]; switch (*charptr) @@ -1291,7 +1291,7 @@ pg_utf8_increment(unsigned char *charptr, int length) charptr[1]++; break; } - /* FALL THRU */ + /* FALLTHROUGH */ case 1: a = *charptr; if (a == 0x7F || a == 0xDF || a == 0xEF || a == 0xF4) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 5bdc02fce2f..7bb41bbb3fd 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -8436,7 +8436,7 @@ ExecSetVariableStmt(VariableSetStmt *stmt, bool isTopLevel) case VAR_SET_DEFAULT: if (stmt->is_local) WarnNoTransactionBlock(isTopLevel, "SET LOCAL"); - /* fall through */ + /* FALLTHROUGH */ case VAR_RESET: if (strcmp(stmt->name, "transaction_isolation") == 0) WarnNoTransactionBlock(isTopLevel, "RESET TRANSACTION"); diff --git a/src/common/hashfn.c b/src/common/hashfn.c index 990f18e610b..29c846fcc31 100644 --- a/src/common/hashfn.c +++ b/src/common/hashfn.c @@ -178,13 +178,13 @@ hash_bytes(const unsigned char *k, int keylen) { case 11: c += ((uint32) k[10] << 8); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 24); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ka[1]; @@ -192,22 +192,22 @@ hash_bytes(const unsigned char *k, int keylen) break; case 7: b += ((uint32) k[6] << 8); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 16); - /* fall through */ + /* FALLTHROUGH */ case 5: b += ((uint32) k[4] << 24); - /* fall through */ + /* FALLTHROUGH */ case 4: a += ka[0]; break; case 3: a += ((uint32) k[2] << 8); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 16); - /* fall through */ + /* FALLTHROUGH */ case 1: a += ((uint32) k[0] << 24); /* case 0: nothing left to add */ @@ -217,13 +217,13 @@ hash_bytes(const unsigned char *k, int keylen) { case 11: c += ((uint32) k[10] << 24); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 8); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ka[1]; @@ -231,22 +231,22 @@ hash_bytes(const unsigned char *k, int keylen) break; case 7: b += ((uint32) k[6] << 16); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 8); - /* fall through */ + /* FALLTHROUGH */ case 5: b += k[4]; - /* fall through */ + /* FALLTHROUGH */ case 4: a += ka[0]; break; case 3: a += ((uint32) k[2] << 16); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 8); - /* fall through */ + /* FALLTHROUGH */ case 1: a += k[0]; /* case 0: nothing left to add */ @@ -280,35 +280,35 @@ hash_bytes(const unsigned char *k, int keylen) { case 11: c += ((uint32) k[10] << 8); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 24); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += k[7]; - /* fall through */ + /* FALLTHROUGH */ case 7: b += ((uint32) k[6] << 8); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 16); - /* fall through */ + /* FALLTHROUGH */ case 5: b += ((uint32) k[4] << 24); - /* fall through */ + /* FALLTHROUGH */ case 4: a += k[3]; - /* fall through */ + /* FALLTHROUGH */ case 3: a += ((uint32) k[2] << 8); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 16); - /* fall through */ + /* FALLTHROUGH */ case 1: a += ((uint32) k[0] << 24); /* case 0: nothing left to add */ @@ -318,35 +318,35 @@ hash_bytes(const unsigned char *k, int keylen) { case 11: c += ((uint32) k[10] << 24); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 8); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ((uint32) k[7] << 24); - /* fall through */ + /* FALLTHROUGH */ case 7: b += ((uint32) k[6] << 16); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 8); - /* fall through */ + /* FALLTHROUGH */ case 5: b += k[4]; - /* fall through */ + /* FALLTHROUGH */ case 4: a += ((uint32) k[3] << 24); - /* fall through */ + /* FALLTHROUGH */ case 3: a += ((uint32) k[2] << 16); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 8); - /* fall through */ + /* FALLTHROUGH */ case 1: a += k[0]; /* case 0: nothing left to add */ @@ -417,13 +417,13 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) { case 11: c += ((uint32) k[10] << 8); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 24); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ka[1]; @@ -431,22 +431,22 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) break; case 7: b += ((uint32) k[6] << 8); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 16); - /* fall through */ + /* FALLTHROUGH */ case 5: b += ((uint32) k[4] << 24); - /* fall through */ + /* FALLTHROUGH */ case 4: a += ka[0]; break; case 3: a += ((uint32) k[2] << 8); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 16); - /* fall through */ + /* FALLTHROUGH */ case 1: a += ((uint32) k[0] << 24); /* case 0: nothing left to add */ @@ -456,13 +456,13 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) { case 11: c += ((uint32) k[10] << 24); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 8); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ka[1]; @@ -470,22 +470,22 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) break; case 7: b += ((uint32) k[6] << 16); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 8); - /* fall through */ + /* FALLTHROUGH */ case 5: b += k[4]; - /* fall through */ + /* FALLTHROUGH */ case 4: a += ka[0]; break; case 3: a += ((uint32) k[2] << 16); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 8); - /* fall through */ + /* FALLTHROUGH */ case 1: a += k[0]; /* case 0: nothing left to add */ @@ -519,35 +519,35 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) { case 11: c += ((uint32) k[10] << 8); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 24); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += k[7]; - /* fall through */ + /* FALLTHROUGH */ case 7: b += ((uint32) k[6] << 8); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 16); - /* fall through */ + /* FALLTHROUGH */ case 5: b += ((uint32) k[4] << 24); - /* fall through */ + /* FALLTHROUGH */ case 4: a += k[3]; - /* fall through */ + /* FALLTHROUGH */ case 3: a += ((uint32) k[2] << 8); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 16); - /* fall through */ + /* FALLTHROUGH */ case 1: a += ((uint32) k[0] << 24); /* case 0: nothing left to add */ @@ -557,35 +557,35 @@ hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed) { case 11: c += ((uint32) k[10] << 24); - /* fall through */ + /* FALLTHROUGH */ case 10: c += ((uint32) k[9] << 16); - /* fall through */ + /* FALLTHROUGH */ case 9: c += ((uint32) k[8] << 8); - /* fall through */ + /* FALLTHROUGH */ case 8: /* the lowest byte of c is reserved for the length */ b += ((uint32) k[7] << 24); - /* fall through */ + /* FALLTHROUGH */ case 7: b += ((uint32) k[6] << 16); - /* fall through */ + /* FALLTHROUGH */ case 6: b += ((uint32) k[5] << 8); - /* fall through */ + /* FALLTHROUGH */ case 5: b += k[4]; - /* fall through */ + /* FALLTHROUGH */ case 4: a += ((uint32) k[3] << 24); - /* fall through */ + /* FALLTHROUGH */ case 3: a += ((uint32) k[2] << 16); - /* fall through */ + /* FALLTHROUGH */ case 2: a += ((uint32) k[1] << 8); - /* fall through */ + /* FALLTHROUGH */ case 1: a += k[0]; /* case 0: nothing left to add */ diff --git a/src/common/wchar.c b/src/common/wchar.c index efaf1c155bb..352083d7bb1 100644 --- a/src/common/wchar.c +++ b/src/common/wchar.c @@ -1452,12 +1452,12 @@ pg_utf8_islegal(const unsigned char *source, int length) a = source[3]; if (a < 0x80 || a > 0xBF) return false; - /* FALL THRU */ + /* FALLTHROUGH */ case 3: a = source[2]; if (a < 0x80 || a > 0xBF) return false; - /* FALL THRU */ + /* FALLTHROUGH */ case 2: a = source[1]; switch (*source) @@ -1483,7 +1483,7 @@ pg_utf8_islegal(const unsigned char *source, int length) return false; break; } - /* FALL THRU */ + /* FALLTHROUGH */ case 1: a = *source; if (a >= 0x80 && a < 0xC2) diff --git a/src/interfaces/ecpg/pgtypeslib/interval.c b/src/interfaces/ecpg/pgtypeslib/interval.c index 48ba50bbce3..9720dfce654 100644 --- a/src/interfaces/ecpg/pgtypeslib/interval.c +++ b/src/interfaces/ecpg/pgtypeslib/interval.c @@ -391,7 +391,7 @@ DecodeInterval(char **field, int *ftype, int nf, /* int range, */ tmask = DTK_M(TZ); break; } - /* FALL THROUGH */ + /* FALLTHROUGH */ case DTK_DATE: case DTK_NUMBER: diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index b455b45e964..062994145b6 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -375,7 +375,7 @@ retry_masked: REMEMBER_EPIPE(spinfo, true); #ifdef ECONNRESET - /* FALL THRU */ + /* FALLTHROUGH */ case ECONNRESET: #endif diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index aeb6c8fefc2..e3a588a7ef0 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -3186,7 +3186,7 @@ exec_stmt_return(PLpgSQL_execstate *estate, PLpgSQL_stmt_return *stmt) /* fulfill promise if needed, then handle like regular var */ plpgsql_fulfill_promise(estate, (PLpgSQL_var *) retvar); - /* FALL THRU */ + /* FALLTHROUGH */ case PLPGSQL_DTYPE_VAR: { @@ -3332,7 +3332,7 @@ exec_stmt_return_next(PLpgSQL_execstate *estate, /* fulfill promise if needed, then handle like regular var */ plpgsql_fulfill_promise(estate, (PLpgSQL_var *) retvar); - /* FALL THRU */ + /* FALLTHROUGH */ case PLPGSQL_DTYPE_VAR: { @@ -5423,7 +5423,7 @@ exec_eval_datum(PLpgSQL_execstate *estate, /* fulfill promise if needed, then handle like regular var */ plpgsql_fulfill_promise(estate, (PLpgSQL_var *) datum); - /* FALL THRU */ + /* FALLTHROUGH */ case PLPGSQL_DTYPE_VAR: { diff --git a/src/port/snprintf.c b/src/port/snprintf.c index 83a81033a58..4deea58314c 100644 --- a/src/port/snprintf.c +++ b/src/port/snprintf.c @@ -464,7 +464,7 @@ nextch2: /* set zero padding if no nonzero digits yet */ if (accum == 0 && !pointflag) zpad = '0'; - /* FALL THRU */ + /* FALLTHROUGH */ case '1': case '2': case '3': diff --git a/src/timezone/Makefile b/src/timezone/Makefile index bf23ac9da97..72cc98e1dfb 100644 --- a/src/timezone/Makefile +++ b/src/timezone/Makefile @@ -55,6 +55,11 @@ ifeq (,$(ZIC)) ZIC= ./zic endif +# zic.c doesn't compile cleanly with our default +# -Wimplicit-fallthrough=4, and we don't want to touch the file since +# it's third-party code, so downgrade to 3 for that file. +zic.o: CFLAGS := $(subst -Wimplicit-fallthrough=4,-Wimplicit-fallthrough=3,$(CFLAGS)) + zic: $(ZICOBJS) | submake-libpgport $(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)