Add -Wimplicit-fallthrough to CFLAGS and CXXFLAGS
authorAlvaro Herrera <[email protected]>
Tue, 12 May 2020 20:01:52 +0000 (16:01 -0400)
committerAlvaro Herrera <[email protected]>
Tue, 12 May 2020 20:07:30 +0000 (16:07 -0400)
Use it at level 4, a bit more restrictive than the default level, and
tweak our commanding comments to FALLTHROUGH.

(However, leave zic.c alone, since it's external code; to avoid the
warnings that would appear there, change CFLAGS for that file in the
Makefile.)

Author: Julien Rouhaud <[email protected]>
Author: Álvaro Herrera <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/20200412081825.qyo5vwwco3fv4gdo@nol
Discussion: https://postgr.es/m/flat/[email protected]

33 files changed:
configure
configure.in
src/backend/access/heap/heapam_handler.c
src/backend/catalog/dependency.c
src/backend/commands/tablecmds.c
src/backend/commands/trigger.c
src/backend/executor/nodeHash.c
src/backend/executor/nodeHashjoin.c
src/backend/executor/nodeLimit.c
src/backend/libpq/auth.c
src/backend/optimizer/util/clauses.c
src/backend/parser/parse_utilcmd.c
src/backend/partitioning/partprune.c
src/backend/postmaster/postmaster.c
src/backend/regex/regc_pg_locale.c
src/backend/replication/logical/reorderbuffer.c
src/backend/replication/walreceiver.c
src/backend/replication/walreceiverfuncs.c
src/backend/tcop/utility.c
src/backend/utils/adt/formatting.c
src/backend/utils/adt/jsonb_util.c
src/backend/utils/adt/timestamp.c
src/backend/utils/adt/tsginidx.c
src/backend/utils/hash/dynahash.c
src/backend/utils/mb/mbutils.c
src/backend/utils/misc/guc.c
src/common/hashfn.c
src/common/wchar.c
src/interfaces/ecpg/pgtypeslib/interval.c
src/interfaces/libpq/fe-secure.c
src/pl/plpgsql/src/pl_exec.c
src/port/snprintf.c
src/timezone/Makefile

index 83abe872aa693cbafa81ca1513ab2a247e5ccbcf..4dfe4fcfe1c2d08c894e605be27e4450984fbdcb 100755 (executable)
--- 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
index ecdf1723967eacaa234840e18c60b236dd708346..94fba67261cb887f6e9642e1ef39bb2ce833cb2e 100644 (file)
@@ -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])
index 56b35622f1a4faa6bcd4d2de6b304fedee5482e0..f819706878fc7cb0e9522b55ad4ae617525760b7 100644 (file)
@@ -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;
index 5565e6fc197d54bf2aaee174c70d7fc5640e0ec7..a6f848511fb3606e7ba32bdf2ab25b0e89744cf8 100644 (file)
@@ -615,7 +615,7 @@ findDependentObjects(const ObjectAddress *object,
                    break;
 
                /* Otherwise, treat this like an internal dependency */
-               /* FALL THRU */
+               /* FALLTHROUGH */
 
            case DEPENDENCY_INTERNAL:
 
index a518b552b3d489d9f950b857d57606827fbdf012..30142552e2ebab0147ab0b0efa10be7e9ed35513 100644 (file)
@@ -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),
index ed551ab73aad50b12a0b1c00a2fac0624ab96877..8222cea35b8c38c2446b47c6ff0f195b4fb64f61 100644 (file)
@@ -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:
 
            /*
index 5da13ada726ad8779348a03c47a9ae568430a062..4516c6346bd802949d16cf6f1eaa15c2e97cb71a 100644 (file)
@@ -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. */
index cc8edacdd01799152203a0a8ac41f442ac395946..6159a6957f4e41b81728577ea2232e4db4bc1b79 100644 (file)
@@ -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:
 
index d85cf7d93e8f49ce5a4b19194d573259e03c78f7..371b15c14a7958dd47eaf6b413ccf26e087d7f06 100644 (file)
@@ -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))
index 02b6c3f127c6756116a725f595008b3edb9c1ebe..bf9d0cca563966f8f688a84e49d0305200806b3d 100644 (file)
@@ -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)
index 0c6fe0115a103f6c8b26902ed48134e4e41f56f4..55b1b788720b2642c255aa75cc68f6cbb51e1332 100644 (file)
@@ -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:
 
                /*
index 75c122fe3489f8dab7994a52ba54dd760157bf0a..cbd5780a69dad236e390e6fdf4becfa69b763a1d 100644 (file)
@@ -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)
index eac52e6ec8519e54d7facdcf2c2897d12ec56196..473423de8d789f4ca2627854c49754973658fc0b 100644 (file)
@@ -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:
 
            /*
index e19d5dc1a64a3f3ad05243a9fe46322a01212508..32f0ce936bbea47b1cc766fd884166925696baec 100644 (file)
@@ -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 */
 
    }
 
index 3cc2d4d3627761264ce55ab8c7870fba764771cf..d4fe01f2d1f62ee21a5fd90029c7d8a7404350b7 100644 (file)
@@ -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)
index 4594cf9509783fdc9a32cd7b6c20dbe74f0c43db..02f0199ba1b807047f495ed922c2f6b93e7faaf7 100644 (file)
@@ -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:
index d69fb90132d1d39ef16bd410bc38ceca8cd7afa9..faca732713400c2590de7d909f1b09f6a3a6486d 100644 (file)
@@ -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);
index 4afad83539ce98e84b332574530357571386fa44..bf68852bf0c613e8fa20bc6d98eb940ec868e3fb 100644 (file)
@@ -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;
index b1f7f6e2d01d35e1dd21aa4518edef2184fe9c15..eee544f8eb543c878ce42bb263e8df85da7c3e6e 100644 (file)
@@ -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:
index aab5802edb4674391155f9e8912f738ec698991c..657b8f037665974fdb9b2eb8d9b1a82e072d0a67 100644 (file)
@@ -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 :
index 04b70c805b44a220a60a1f9363cb0b08702d29f0..52ec80af045dc5912ba393eef942cfe043be8c18 100644 (file)
@@ -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);
index 4caffb580409ec245e76c201fcf9820daa9a9df2..d28d3c1628b0e6e9d731c6620ff850563fbdd496 100644 (file)
@@ -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;
index 2d656168fca56ead9d7328e27cf9c6d35254b1c9..a6d7b9805ada42a68ccbaaf2eb4081bba687df90 100644 (file)
@@ -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,
index 5b4b9e487f596dcb193f0064f4278cde3c44e50a..254c49ef9f24e7bd416bbabff70cf4671c1dadc5 100644 (file)
@@ -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 */
index a8e13cacfde29e3142e3c9cf3b98b8b064a3eeaf..4a162316057c0fdf3d6d341c39288b748a7df392 100644 (file)
@@ -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)
index 5bdc02fce2ff29741b3e17638ceb54d0426683d3..7bb41bbb3fdc8af0aa91b2511145ab11612309ff 100644 (file)
@@ -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");
index 990f18e610b8cccb6f73729a00037e1503eb41ef..29c846fcc31d446453f5ba2671eb80eef9760644 100644 (file)
@@ -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 */
index efaf1c155bbdec453a603596e18b0b84729b97a1..352083d7bb1bf17ee838735e3164af6ec928e6b3 100644 (file)
@@ -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)
index 48ba50bbce3547382444572b07622ef3f01b1a7f..9720dfce654c2e1c5a825080cf72ac930a960c8c 100644 (file)
@@ -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:
index b455b45e96440b8eaec4c818790566b01fb0955d..062994145b6ebb97b82bde33bdb526f5f79e7fae 100644 (file)
@@ -375,7 +375,7 @@ retry_masked:
                REMEMBER_EPIPE(spinfo, true);
 
 #ifdef ECONNRESET
-               /* FALL THRU */
+               /* FALLTHROUGH */
 
            case ECONNRESET:
 #endif
index aeb6c8fefc2f2e30e7c86df066722d4d6bf6f8b5..e3a588a7ef0b88286a7a115225209571bbc8316d 100644 (file)
@@ -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:
            {
index 83a81033a5858d0a9605f68f55c5eecc9b7af0dd..4deea58314c920b40e703442a353a29c08ccf38d 100644 (file)
@@ -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':
index bf23ac9da9741d0a0bb73a1e3c9de40974ef1c77..72cc98e1dfb6d40f5b547770d1bb069314ce50bd 100644 (file)
@@ -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)