From 9fb9691a88ae8df9bc30e0f0f72de7c96e73e125 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 21 Mar 2021 11:50:43 -0400 Subject: [PATCH] Suppress various new compiler warnings. Compilers that don't understand that elog(ERROR) doesn't return issued warnings here. In the cases in libpq_pipeline.c, we were not exactly helping things by failing to mark pg_fatal() as noreturn. Per buildfarm. --- src/backend/access/common/detoast.c | 2 ++ src/backend/access/common/toast_compression.c | 3 +++ src/include/access/toast_compression.h | 1 + src/test/modules/libpq_pipeline/libpq_pipeline.c | 6 ++++-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/backend/access/common/detoast.c b/src/backend/access/common/detoast.c index 2fef40c2e9a..bed50e86034 100644 --- a/src/backend/access/common/detoast.c +++ b/src/backend/access/common/detoast.c @@ -487,6 +487,7 @@ toast_decompress_datum(struct varlena *attr) return lz4_decompress_datum(attr); default: elog(ERROR, "invalid compression method id %d", cmid); + return NULL; /* keep compiler quiet */ } } @@ -518,6 +519,7 @@ toast_decompress_datum_slice(struct varlena *attr, int32 slicelength) return lz4_decompress_datum_slice(attr, slicelength); default: elog(ERROR, "invalid compression method id %d", cmid); + return NULL; /* keep compiler quiet */ } } diff --git a/src/backend/access/common/toast_compression.c b/src/backend/access/common/toast_compression.c index a6f8b79a9ed..00af1740cfa 100644 --- a/src/backend/access/common/toast_compression.c +++ b/src/backend/access/common/toast_compression.c @@ -135,6 +135,7 @@ lz4_compress_datum(const struct varlena *value) { #ifndef USE_LZ4 NO_LZ4_SUPPORT(); + return NULL; /* keep compiler quiet */ #else int32 valsize; int32 len; @@ -177,6 +178,7 @@ lz4_decompress_datum(const struct varlena *value) { #ifndef USE_LZ4 NO_LZ4_SUPPORT(); + return NULL; /* keep compiler quiet */ #else int32 rawsize; struct varlena *result; @@ -209,6 +211,7 @@ lz4_decompress_datum_slice(const struct varlena *value, int32 slicelength) { #ifndef USE_LZ4 NO_LZ4_SUPPORT(); + return NULL; /* keep compiler quiet */ #else int32 rawsize; struct varlena *result; diff --git a/src/include/access/toast_compression.h b/src/include/access/toast_compression.h index 514df0bed18..5c9220c1710 100644 --- a/src/include/access/toast_compression.h +++ b/src/include/access/toast_compression.h @@ -69,6 +69,7 @@ GetCompressionMethodName(char method) return "lz4"; default: elog(ERROR, "invalid compression method %c", method); + return NULL; /* keep compiler quiet */ } } diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c b/src/test/modules/libpq_pipeline/libpq_pipeline.c index 03eb3df5042..846ee9f5ab0 100644 --- a/src/test/modules/libpq_pipeline/libpq_pipeline.c +++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c @@ -60,6 +60,7 @@ exit_nicely(PGconn *conn) */ #define pg_fatal(...) pg_fatal_impl(__LINE__, __VA_ARGS__) static void +pg_attribute_noreturn() pg_fatal_impl(int line, const char *fmt,...) { va_list args; @@ -570,6 +571,7 @@ test_pipelined_insert(PGconn *conn, int n_rows) default: pg_fatal("invalid state"); + sql = NULL; /* keep compiler quiet */ } pg_debug("sending: %s\n", sql); @@ -679,8 +681,8 @@ test_pipelined_insert(PGconn *conn, int n_rows) break; case BI_DONE: /* unreachable */ - description = ""; - abort(); + pg_fatal("unreachable state"); + cmdtag = NULL; /* keep compiler quiet */ } if (PQresultStatus(res) != status)