This patch fixes cases where a qualifier (const, in all cases here) was
dropped by a cast, but the cast was otherwise necessary or desirable, so
the straightforward fix is to add the qualifier into the cast.
This was checked with gcc -Wcast-qual, but it doesn't fix all such
warnings, only the trivially fixable ones.From b8ce9fd7377e666bb9fbd774e48741a74d9a7091 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <[email protected]>
Date: Sat, 13 Dec 2025 23:34:38 +0100
Subject: [PATCH] Fix accidentally cast away qualifiers
This fixes cases where a qualifier (const, in all cases here) was
dropped by a cast, but the cast was otherwise necessary or desirable,
so the straightforward fix is to add the qualifier into the cast.
---
contrib/intarray/_int_selfuncs.c | 2 +-
contrib/pageinspect/heapfuncs.c | 2 +-
contrib/uuid-ossp/uuid-ossp.c | 4 +-
src/backend/access/common/toast_compression.c | 8 ++--
src/backend/access/nbtree/nbtinsert.c | 4 +-
src/backend/access/transam/xloginsert.c | 4 +-
src/backend/backup/backup_manifest.c | 2 +-
src/backend/backup/basebackup.c | 2 +-
src/backend/backup/basebackup_incremental.c | 6 +--
src/backend/executor/nodeIndexscan.c | 4 +-
src/backend/libpq/auth-scram.c | 4 +-
src/backend/libpq/crypt.c | 4 +-
src/backend/nodes/nodeFuncs.c | 6 +--
src/backend/nodes/outfuncs.c | 12 ++---
src/backend/nodes/tidbitmap.c | 4 +-
src/backend/statistics/extended_stats.c | 4 +-
src/backend/storage/ipc/shm_mq.c | 2 +-
src/backend/tsearch/spell.c | 4 +-
src/backend/utils/adt/geo_spgist.c | 4 +-
src/backend/utils/adt/json.c | 2 +-
src/backend/utils/adt/pg_locale_builtin.c | 2 +-
src/backend/utils/adt/rangetypes.c | 8 ++--
src/backend/utils/adt/rangetypes_gist.c | 4 +-
src/bin/pg_basebackup/walmethods.c | 2 +-
src/bin/pg_rewind/filemap.c | 4 +-
src/bin/pg_verifybackup/astreamer_verify.c | 2 +-
src/bin/pg_walsummary/pg_walsummary.c | 4 +-
src/common/scram-common.c | 4 +-
src/common/unicode_case.c | 4 +-
src/include/access/tupmacs.h | 2 +-
src/include/common/hashfn_unstable.h | 2 +-
src/include/utils/memutils.h | 12 ++---
src/include/varatt.h | 48 +++++++++----------
src/interfaces/libpq/fe-auth-scram.c | 2 +-
src/interfaces/libpq/fe-auth.c | 4 +-
src/port/pg_crc32c_armv8.c | 10 ++--
src/port/pg_popcount_aarch64.c | 4 +-
src/test/isolation/isolationtester.c | 8 ++--
.../modules/libpq_pipeline/libpq_pipeline.c | 2 +-
.../modules/test_tidstore/test_tidstore.c | 8 ++--
40 files changed, 110 insertions(+), 110 deletions(-)
diff --git a/contrib/intarray/_int_selfuncs.c b/contrib/intarray/_int_selfuncs.c
index c3e19cdf27f..4a7053028c6 100644
--- a/contrib/intarray/_int_selfuncs.c
+++ b/contrib/intarray/_int_selfuncs.c
@@ -328,7 +328,7 @@ int_query_opr_selec(ITEM *item, Datum *mcelems, float4
*mcefreqs,
static int
compare_val_int4(const void *a, const void *b)
{
- int32 key = *(int32 *) a;
+ int32 key = *(const int32 *) a;
int32 value = DatumGetInt32(*(const Datum *) b);
if (key < value)
diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c
index 1cf0b44e731..8277fa256c3 100644
--- a/contrib/pageinspect/heapfuncs.c
+++ b/contrib/pageinspect/heapfuncs.c
@@ -46,7 +46,7 @@ static inline Oid
HeapTupleHeaderGetOidOld(const HeapTupleHeaderData *tup)
{
if (tup->t_infomask & HEAP_HASOID_OLD)
- return *((Oid *) ((char *) (tup) + (tup)->t_hoff -
sizeof(Oid)));
+ return *((const Oid *) ((const char *) (tup) + (tup)->t_hoff -
sizeof(Oid)));
else
return InvalidOid;
}
diff --git a/contrib/uuid-ossp/uuid-ossp.c b/contrib/uuid-ossp/uuid-ossp.c
index 70e698f4ab3..aa4d0becace 100644
--- a/contrib/uuid-ossp/uuid-ossp.c
+++ b/contrib/uuid-ossp/uuid-ossp.c
@@ -337,7 +337,7 @@ uuid_generate_internal(int v, unsigned char *ns, const char
*ptr, int len)
elog(ERROR, "could not
initialize %s context: %s", "MD5",
pg_cryptohash_error(ctx));
if (pg_cryptohash_update(ctx, ns,
sizeof(uu)) < 0 ||
- pg_cryptohash_update(ctx,
(unsigned char *) ptr, len) < 0)
+ pg_cryptohash_update(ctx,
(const unsigned char *) ptr, len) < 0)
elog(ERROR, "could not update
%s context: %s", "MD5",
pg_cryptohash_error(ctx));
/* we assume sizeof MD5 result is 16,
same as UUID size */
@@ -356,7 +356,7 @@ uuid_generate_internal(int v, unsigned char *ns, const char
*ptr, int len)
elog(ERROR, "could not
initialize %s context: %s", "SHA1",
pg_cryptohash_error(ctx));
if (pg_cryptohash_update(ctx, ns,
sizeof(uu)) < 0 ||
- pg_cryptohash_update(ctx,
(unsigned char *) ptr, len) < 0)
+ pg_cryptohash_update(ctx,
(const unsigned char *) ptr, len) < 0)
elog(ERROR, "could not update
%s context: %s", "SHA1",
pg_cryptohash_error(ctx));
if (pg_cryptohash_final(ctx,
sha1result, sizeof(sha1result)) < 0)
diff --git a/src/backend/access/common/toast_compression.c
b/src/backend/access/common/toast_compression.c
index 1336328cc0b..d449613b21f 100644
--- a/src/backend/access/common/toast_compression.c
+++ b/src/backend/access/common/toast_compression.c
@@ -88,7 +88,7 @@ pglz_decompress_datum(const struct varlena *value)
result = (struct varlena *)
palloc(VARDATA_COMPRESSED_GET_EXTSIZE(value) + VARHDRSZ);
/* decompress the data */
- rawsize = pglz_decompress((char *) value + VARHDRSZ_COMPRESSED,
+ rawsize = pglz_decompress((const char *) value + VARHDRSZ_COMPRESSED,
VARSIZE(value) -
VARHDRSZ_COMPRESSED,
VARDATA(result),
VARDATA_COMPRESSED_GET_EXTSIZE(value), true);
@@ -116,7 +116,7 @@ pglz_decompress_datum_slice(const struct varlena *value,
result = (struct varlena *) palloc(slicelength + VARHDRSZ);
/* decompress the data */
- rawsize = pglz_decompress((char *) value + VARHDRSZ_COMPRESSED,
+ rawsize = pglz_decompress((const char *) value + VARHDRSZ_COMPRESSED,
VARSIZE(value) -
VARHDRSZ_COMPRESSED,
VARDATA(result),
slicelength, false);
@@ -192,7 +192,7 @@ lz4_decompress_datum(const struct varlena *value)
result = (struct varlena *)
palloc(VARDATA_COMPRESSED_GET_EXTSIZE(value) + VARHDRSZ);
/* decompress the data */
- rawsize = LZ4_decompress_safe((char *) value + VARHDRSZ_COMPRESSED,
+ rawsize = LZ4_decompress_safe((const char *) value +
VARHDRSZ_COMPRESSED,
VARDATA(result),
VARSIZE(value) - VARHDRSZ_COMPRESSED,
VARDATA_COMPRESSED_GET_EXTSIZE(value));
@@ -229,7 +229,7 @@ lz4_decompress_datum_slice(const struct varlena *value,
int32 slicelength)
result = (struct varlena *) palloc(slicelength + VARHDRSZ);
/* decompress the data */
- rawsize = LZ4_decompress_safe_partial((char *) value +
VARHDRSZ_COMPRESSED,
+ rawsize = LZ4_decompress_safe_partial((const char *) value +
VARHDRSZ_COMPRESSED,
VARDATA(result),
VARSIZE(value) - VARHDRSZ_COMPRESSED,
slicelength,
diff --git a/src/backend/access/nbtree/nbtinsert.c
b/src/backend/access/nbtree/nbtinsert.c
index 63eda08f7a2..d17aaa5aa0f 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -3023,8 +3023,8 @@ _bt_deadblocks(Page page, OffsetNumber *deletable, int
ndeletable,
static inline int
_bt_blk_cmp(const void *arg1, const void *arg2)
{
- BlockNumber b1 = *((BlockNumber *) arg1);
- BlockNumber b2 = *((BlockNumber *) arg2);
+ BlockNumber b1 = *((const BlockNumber *) arg1);
+ BlockNumber b2 = *((const BlockNumber *) arg2);
return pg_cmp_u32(b1, b2);
}
diff --git a/src/backend/access/transam/xloginsert.c
b/src/backend/access/transam/xloginsert.c
index 92c48e768c3..f928bc7c0ef 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -677,8 +677,8 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
if (regbuf->flags & REGBUF_STANDARD)
{
/* Assume we can omit data between pd_lower and
pd_upper */
- uint16 lower = ((PageHeader)
page)->pd_lower;
- uint16 upper = ((PageHeader)
page)->pd_upper;
+ uint16 lower = ((const PageHeaderData
*) page)->pd_lower;
+ uint16 upper = ((const PageHeaderData
*) page)->pd_upper;
if (lower >= SizeOfPageHeaderData &&
upper > lower &&
diff --git a/src/backend/backup/backup_manifest.c
b/src/backend/backup/backup_manifest.c
index c697caef895..3760b003907 100644
--- a/src/backend/backup/backup_manifest.c
+++ b/src/backend/backup/backup_manifest.c
@@ -388,7 +388,7 @@ AppendStringToManifest(backup_manifest_info *manifest,
const char *s)
Assert(manifest != NULL);
if (manifest->still_checksumming)
{
- if (pg_cryptohash_update(manifest->manifest_ctx, (uint8 *) s,
len) < 0)
+ if (pg_cryptohash_update(manifest->manifest_ctx, (const uint8
*) s, len) < 0)
elog(ERROR, "failed to update checksum of backup
manifest: %s",
pg_cryptohash_error(manifest->manifest_ctx));
}
diff --git a/src/backend/backup/basebackup.c b/src/backend/backup/basebackup.c
index ba06a38c033..463c0756b5e 100644
--- a/src/backend/backup/basebackup.c
+++ b/src/backend/backup/basebackup.c
@@ -1104,7 +1104,7 @@ sendFileWithContent(bbsink *sink, const char *filename,
const char *content,
_tarWriteHeader(sink, filename, NULL, &statbuf, false);
- if (pg_checksum_update(&checksum_ctx, (uint8 *) content, len) < 0)
+ if (pg_checksum_update(&checksum_ctx, (const uint8 *) content, len) < 0)
elog(ERROR, "could not update checksum of file \"%s\"",
filename);
diff --git a/src/backend/backup/basebackup_incremental.c
b/src/backend/backup/basebackup_incremental.c
index 77dce24ad38..f58ed9b198a 100644
--- a/src/backend/backup/basebackup_incremental.c
+++ b/src/backend/backup/basebackup_incremental.c
@@ -930,7 +930,7 @@ GetIncrementalFileSize(unsigned num_blocks_required)
static uint32
hash_string_pointer(const char *s)
{
- unsigned char *ss = (unsigned char *) s;
+ const unsigned char *ss = (const unsigned char *) s;
return hash_bytes(ss, strlen(s));
}
@@ -1049,8 +1049,8 @@ manifest_report_error(JsonManifestParseContext *context,
const char *fmt,...)
static int
compare_block_numbers(const void *a, const void *b)
{
- BlockNumber aa = *(BlockNumber *) a;
- BlockNumber bb = *(BlockNumber *) b;
+ BlockNumber aa = *(const BlockNumber *) a;
+ BlockNumber bb = *(const BlockNumber *) b;
return pg_cmp_u32(aa, bb);
}
diff --git a/src/backend/executor/nodeIndexscan.c
b/src/backend/executor/nodeIndexscan.c
index 84823f0b615..a616abff04c 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -443,8 +443,8 @@ static int
reorderqueue_cmp(const pairingheap_node *a, const pairingheap_node *b,
void *arg)
{
- ReorderTuple *rta = (ReorderTuple *) a;
- ReorderTuple *rtb = (ReorderTuple *) b;
+ const ReorderTuple *rta = (const ReorderTuple *) a;
+ const ReorderTuple *rtb = (const ReorderTuple *) b;
IndexScanState *node = (IndexScanState *) arg;
/* exchange argument order to invert the sort order */
diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c
index 3c41145d926..0267edb29cd 100644
--- a/src/backend/libpq/auth-scram.c
+++ b/src/backend/libpq/auth-scram.c
@@ -1490,8 +1490,8 @@ scram_mock_salt(const char *username, pg_cryptohash_type
hash_type,
ctx = pg_cryptohash_create(hash_type);
if (pg_cryptohash_init(ctx) < 0 ||
- pg_cryptohash_update(ctx, (uint8 *) username, strlen(username))
< 0 ||
- pg_cryptohash_update(ctx, (uint8 *) mock_auth_nonce,
MOCK_AUTH_NONCE_LEN) < 0 ||
+ pg_cryptohash_update(ctx, (const uint8 *) username,
strlen(username)) < 0 ||
+ pg_cryptohash_update(ctx, (const uint8 *) mock_auth_nonce,
MOCK_AUTH_NONCE_LEN) < 0 ||
pg_cryptohash_final(ctx, sha_digest, key_length) < 0)
{
pg_cryptohash_free(ctx);
diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c
index 4c1052b3d42..52722060451 100644
--- a/src/backend/libpq/crypt.c
+++ b/src/backend/libpq/crypt.c
@@ -136,7 +136,7 @@ encrypt_password(PasswordType target_type, const char *role,
case PASSWORD_TYPE_MD5:
encrypted_password = palloc(MD5_PASSWD_LEN + 1);
- if (!pg_md5_encrypt(password, (uint8 *) role,
strlen(role),
+ if (!pg_md5_encrypt(password, (const uint8 *)
role, strlen(role),
encrypted_password, &errstr))
elog(ERROR, "password encryption
failed: %s", errstr);
break;
@@ -284,7 +284,7 @@ plain_crypt_verify(const char *role, const char
*shadow_pass,
case PASSWORD_TYPE_MD5:
if (!pg_md5_encrypt(client_pass,
- (uint8 *) role,
+ (const uint8 *)
role,
strlen(role),
crypt_client_pass,
&errstr))
diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c
index d29664ca5d4..199ed27995f 100644
--- a/src/backend/nodes/nodeFuncs.c
+++ b/src/backend/nodes/nodeFuncs.c
@@ -1009,14 +1009,14 @@ exprCollation(const Node *expr)
break;
case T_JsonExpr:
{
- const JsonExpr *jsexpr = (JsonExpr *) expr;
+ const JsonExpr *jsexpr = (const JsonExpr *)
expr;
coll = jsexpr->collation;
}
break;
case T_JsonBehavior:
{
- const JsonBehavior *behavior = (JsonBehavior *)
expr;
+ const JsonBehavior *behavior = (const
JsonBehavior *) expr;
if (behavior->expr)
coll = exprCollation(behavior->expr);
@@ -1593,7 +1593,7 @@ exprLocation(const Node *expr)
}
break;
case T_JsonBehavior:
- loc = exprLocation(((JsonBehavior *) expr)->expr);
+ loc = exprLocation(((const JsonBehavior *) expr)->expr);
break;
case T_NullTest:
{
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index c8eef2c75d2..40990143927 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -736,17 +736,17 @@ outNode(StringInfo str, const void *obj)
_outList(str, obj);
/* nodeRead does not want to see { } around these! */
else if (IsA(obj, Integer))
- _outInteger(str, (Integer *) obj);
+ _outInteger(str, (const Integer *) obj);
else if (IsA(obj, Float))
- _outFloat(str, (Float *) obj);
+ _outFloat(str, (const Float *) obj);
else if (IsA(obj, Boolean))
- _outBoolean(str, (Boolean *) obj);
+ _outBoolean(str, (const Boolean *) obj);
else if (IsA(obj, String))
- _outString(str, (String *) obj);
+ _outString(str, (const String *) obj);
else if (IsA(obj, BitString))
- _outBitString(str, (BitString *) obj);
+ _outBitString(str, (const BitString *) obj);
else if (IsA(obj, Bitmapset))
- outBitmapset(str, (Bitmapset *) obj);
+ outBitmapset(str, (const Bitmapset *) obj);
else
{
appendStringInfoChar(str, '{');
diff --git a/src/backend/nodes/tidbitmap.c b/src/backend/nodes/tidbitmap.c
index 805ff21c7f1..f1f925cb13b 100644
--- a/src/backend/nodes/tidbitmap.c
+++ b/src/backend/nodes/tidbitmap.c
@@ -1439,8 +1439,8 @@ static int
tbm_shared_comparator(const void *left, const void *right, void *arg)
{
PagetableEntry *base = (PagetableEntry *) arg;
- PagetableEntry *lpage = &base[*(int *) left];
- PagetableEntry *rpage = &base[*(int *) right];
+ PagetableEntry *lpage = &base[*(const int *) left];
+ PagetableEntry *rpage = &base[*(const int *) right];
if (lpage->blockno < rpage->blockno)
return -1;
diff --git a/src/backend/statistics/extended_stats.c
b/src/backend/statistics/extended_stats.c
index b9a8f257042..3895ed72ef7 100644
--- a/src/backend/statistics/extended_stats.c
+++ b/src/backend/statistics/extended_stats.c
@@ -915,8 +915,8 @@ multi_sort_compare_dims(int start, int end,
int
compare_scalars_simple(const void *a, const void *b, void *arg)
{
- return compare_datums_simple(*(Datum *) a,
- *(Datum *) b,
+ return compare_datums_simple(*(const Datum *) a,
+ *(const Datum
*) b,
(SortSupport)
arg);
}
diff --git a/src/backend/storage/ipc/shm_mq.c b/src/backend/storage/ipc/shm_mq.c
index 4d6cc16c0bc..3ce6068ac54 100644
--- a/src/backend/storage/ipc/shm_mq.c
+++ b/src/backend/storage/ipc/shm_mq.c
@@ -1041,7 +1041,7 @@ shm_mq_send_bytes(shm_mq_handle *mqh, Size nbytes, const
void *data,
*/
pg_memory_barrier();
memcpy(&mq->mq_ring[mq->mq_ring_offset + offset],
- (char *) data + sent, sendnow);
+ (const char *) data + sent, sendnow);
sent += sendnow;
/*
diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c
index e3436dbddd2..ad0ceec37b0 100644
--- a/src/backend/tsearch/spell.c
+++ b/src/backend/tsearch/spell.c
@@ -2463,9 +2463,9 @@ SplitToVariants(IspellDict *Conf, SPNode *snode, SplitVar
*orig, const char *wor
while (StopLow < StopHigh)
{
StopMiddle = StopLow + ((StopHigh - StopLow) >> 1);
- if (StopMiddle->val == ((uint8 *) (word))[level])
+ if (StopMiddle->val == ((const uint8 *) (word))[level])
break;
- else if (StopMiddle->val < ((uint8 *) (word))[level])
+ else if (StopMiddle->val < ((const uint8 *)
(word))[level])
StopLow = StopMiddle + 1;
else
StopHigh = StopMiddle;
diff --git a/src/backend/utils/adt/geo_spgist.c
b/src/backend/utils/adt/geo_spgist.c
index 19bcae3848b..7a19ca3892b 100644
--- a/src/backend/utils/adt/geo_spgist.c
+++ b/src/backend/utils/adt/geo_spgist.c
@@ -92,8 +92,8 @@
static int
compareDoubles(const void *a, const void *b)
{
- float8 x = *(float8 *) a;
- float8 y = *(float8 *) b;
+ float8 x = *(const float8 *) a;
+ float8 y = *(const float8 *) b;
if (x == y)
return 0;
diff --git a/src/backend/utils/adt/json.c b/src/backend/utils/adt/json.c
index 78e84727fdc..0b161398465 100644
--- a/src/backend/utils/adt/json.c
+++ b/src/backend/utils/adt/json.c
@@ -901,7 +901,7 @@ json_agg_finalfn(PG_FUNCTION_ARGS)
static uint32
json_unique_hash(const void *key, Size keysize)
{
- const JsonUniqueHashEntry *entry = (JsonUniqueHashEntry *) key;
+ const JsonUniqueHashEntry *entry = (const JsonUniqueHashEntry *) key;
uint32 hash = hash_bytes_uint32(entry->object_id);
hash ^= hash_bytes((const unsigned char *) entry->key, entry->key_len);
diff --git a/src/backend/utils/adt/pg_locale_builtin.c
b/src/backend/utils/adt/pg_locale_builtin.c
index 1f5fc1c97f3..b5aeb7a337a 100644
--- a/src/backend/utils/adt/pg_locale_builtin.c
+++ b/src/backend/utils/adt/pg_locale_builtin.c
@@ -63,7 +63,7 @@ initcap_wbnext(void *state)
while (wbstate->offset < wbstate->len &&
wbstate->str[wbstate->offset] != '\0')
{
- char32_t u = utf8_to_unicode((unsigned char *)
wbstate->str +
+ char32_t u = utf8_to_unicode((const unsigned char *)
wbstate->str +
wbstate->offset);
bool curr_alnum = pg_u_isalnum(u, wbstate->posix);
diff --git a/src/backend/utils/adt/rangetypes.c
b/src/backend/utils/adt/rangetypes.c
index 701aacbbfb0..06cc3af4f4a 100644
--- a/src/backend/utils/adt/rangetypes.c
+++ b/src/backend/utils/adt/rangetypes.c
@@ -2108,7 +2108,7 @@ range_deserialize(TypeCacheEntry *typcache, const
RangeType *range,
typalign = typcache->rngelemtype->typalign;
/* initialize data pointer just after the range OID */
- ptr = (char *) (range + 1);
+ ptr = (const char *) (range + 1);
/* fetch lower bound, if any */
if (RANGE_HAS_LBOUND(flags))
@@ -2155,7 +2155,7 @@ char
range_get_flags(const RangeType *range)
{
/* fetch the flag byte from datum's last byte */
- return *((char *) range + VARSIZE(range) - 1);
+ return *((const char *) range + VARSIZE(range) - 1);
}
/*
@@ -2360,8 +2360,8 @@ range_cmp_bound_values(TypeCacheEntry *typcache, const
RangeBound *b1,
int
range_compare(const void *key1, const void *key2, void *arg)
{
- RangeType *r1 = *(RangeType **) key1;
- RangeType *r2 = *(RangeType **) key2;
+ RangeType *r1 = *(RangeType *const *) key1;
+ RangeType *r2 = *(RangeType *const *) key2;
TypeCacheEntry *typcache = (TypeCacheEntry *) arg;
RangeBound lower1;
RangeBound upper1;
diff --git a/src/backend/utils/adt/rangetypes_gist.c
b/src/backend/utils/adt/rangetypes_gist.c
index cb9f769cdb2..1a01a8f4c3c 100644
--- a/src/backend/utils/adt/rangetypes_gist.c
+++ b/src/backend/utils/adt/rangetypes_gist.c
@@ -1768,8 +1768,8 @@ interval_cmp_upper(const void *a, const void *b, void
*arg)
static int
common_entry_cmp(const void *i1, const void *i2)
{
- double delta1 = ((CommonEntry *) i1)->delta;
- double delta2 = ((CommonEntry *) i2)->delta;
+ double delta1 = ((const CommonEntry *) i1)->delta;
+ double delta2 = ((const CommonEntry *) i2)->delta;
if (delta1 < delta2)
return -1;
diff --git a/src/bin/pg_basebackup/walmethods.c
b/src/bin/pg_basebackup/walmethods.c
index f6e2371f477..17d22c79f68 100644
--- a/src/bin/pg_basebackup/walmethods.c
+++ b/src/bin/pg_basebackup/walmethods.c
@@ -359,7 +359,7 @@ dir_write(Walfile *f, const void *buf, size_t count)
return -1;
}
- inbuf = ((char *) inbuf) + chunk;
+ inbuf = ((const char *) inbuf) + chunk;
}
/* Our caller keeps track of the uncompressed size. */
diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c
index 2610bae7e09..b79c47f9252 100644
--- a/src/bin/pg_rewind/filemap.c
+++ b/src/bin/pg_rewind/filemap.c
@@ -694,8 +694,8 @@ datasegpath(RelFileLocator rlocator, ForkNumber forknum,
BlockNumber segno)
static int
final_filemap_cmp(const void *a, const void *b)
{
- file_entry_t *fa = *((file_entry_t **) a);
- file_entry_t *fb = *((file_entry_t **) b);
+ file_entry_t *fa = *((file_entry_t *const *) a);
+ file_entry_t *fb = *((file_entry_t *const *) b);
if (fa->action > fb->action)
return 1;
diff --git a/src/bin/pg_verifybackup/astreamer_verify.c
b/src/bin/pg_verifybackup/astreamer_verify.c
index 440c96269d7..0edc8123b43 100644
--- a/src/bin/pg_verifybackup/astreamer_verify.c
+++ b/src/bin/pg_verifybackup/astreamer_verify.c
@@ -268,7 +268,7 @@ member_compute_checksum(astreamer *streamer,
astreamer_member *member,
mystreamer->checksum_bytes += len;
/* Feed these bytes to the checksum calculation. */
- if (pg_checksum_update(checksum_ctx, (uint8 *) data, len) < 0)
+ if (pg_checksum_update(checksum_ctx, (const uint8 *) data, len) < 0)
{
report_backup_error(mystreamer->context,
"could not update
checksum of file \"%s\"",
diff --git a/src/bin/pg_walsummary/pg_walsummary.c
b/src/bin/pg_walsummary/pg_walsummary.c
index 74851f84f92..aa214b8616d 100644
--- a/src/bin/pg_walsummary/pg_walsummary.c
+++ b/src/bin/pg_walsummary/pg_walsummary.c
@@ -217,8 +217,8 @@ dump_one_relation(ws_options *opt, RelFileLocator *rlocator,
static int
compare_block_numbers(const void *a, const void *b)
{
- BlockNumber aa = *(BlockNumber *) a;
- BlockNumber bb = *(BlockNumber *) b;
+ BlockNumber aa = *(const BlockNumber *) a;
+ BlockNumber bb = *(const BlockNumber *) b;
return pg_cmp_u32(aa, bb);
}
diff --git a/src/common/scram-common.c b/src/common/scram-common.c
index dbf188ae872..259fa5554b6 100644
--- a/src/common/scram-common.c
+++ b/src/common/scram-common.c
@@ -61,7 +61,7 @@ scram_SaltedPassword(const char *password,
*/
/* First iteration */
- if (pg_hmac_init(hmac_ctx, (uint8 *) password, password_len) < 0 ||
+ if (pg_hmac_init(hmac_ctx, (const uint8 *) password, password_len) < 0
||
pg_hmac_update(hmac_ctx, salt, saltlen) < 0 ||
pg_hmac_update(hmac_ctx, (uint8 *) &one, sizeof(uint32)) < 0 ||
pg_hmac_final(hmac_ctx, Ui_prev, key_length) < 0)
@@ -84,7 +84,7 @@ scram_SaltedPassword(const char *password,
CHECK_FOR_INTERRUPTS();
#endif
- if (pg_hmac_init(hmac_ctx, (uint8 *) password, password_len) <
0 ||
+ if (pg_hmac_init(hmac_ctx, (const uint8 *) password,
password_len) < 0 ||
pg_hmac_update(hmac_ctx, (uint8 *) Ui_prev, key_length)
< 0 ||
pg_hmac_final(hmac_ctx, Ui, key_length) < 0)
{
diff --git a/src/common/unicode_case.c b/src/common/unicode_case.c
index 71acd38d6fe..0b8d3ffc0b4 100644
--- a/src/common/unicode_case.c
+++ b/src/common/unicode_case.c
@@ -231,7 +231,7 @@ convert_case(char *dst, size_t dstsize, const char *src,
ssize_t srclen,
while ((srclen < 0 || srcoff < srclen) && src[srcoff] != '\0')
{
- char32_t u1 = utf8_to_unicode((unsigned char *) src +
srcoff);
+ char32_t u1 = utf8_to_unicode((const unsigned char *)
src + srcoff);
int u1len = unicode_utf8len(u1);
char32_t simple = 0;
const char32_t *special = NULL;
@@ -373,7 +373,7 @@ check_special_conditions(int conditions, const char *str,
size_t len,
if (conditions == 0)
return true;
else if (conditions == PG_U_FINAL_SIGMA)
- return check_final_sigma((unsigned char *) str, len, offset);
+ return check_final_sigma((const unsigned char *) str, len,
offset);
/* no other conditions supported */
Assert(false);
diff --git a/src/include/access/tupmacs.h b/src/include/access/tupmacs.h
index e6df8264750..3e5530658c9 100644
--- a/src/include/access/tupmacs.h
+++ b/src/include/access/tupmacs.h
@@ -190,7 +190,7 @@ fetch_att(const void *T, bool attbyval, int attlen)
: \
( \
AssertMacro((attlen) == -2), \
- (cur_offset) + (strlen((char *) (attptr)) + 1) \
+ (cur_offset) + (strlen((const char *) (attptr)) + 1) \
)) \
)
diff --git a/src/include/common/hashfn_unstable.h
b/src/include/common/hashfn_unstable.h
index 428936b8b64..11225faafda 100644
--- a/src/include/common/hashfn_unstable.h
+++ b/src/include/common/hashfn_unstable.h
@@ -264,7 +264,7 @@ fasthash_accum_cstring_aligned(fasthash_state *hs, const
char *str)
*/
for (;;)
{
- uint64 chunk = *(uint64 *) str;
+ uint64 chunk = *(const uint64 *) str;
zero_byte_low = haszero64(chunk);
if (zero_byte_low)
diff --git a/src/include/utils/memutils.h b/src/include/utils/memutils.h
index 2bc13c3a054..11ab1717a16 100644
--- a/src/include/utils/memutils.h
+++ b/src/include/utils/memutils.h
@@ -253,7 +253,7 @@ pg_memory_is_all_zeros(const void *ptr, size_t len)
*/
for (; p < aligned_end; p += sizeof(size_t))
{
- if (*(size_t *) p != 0)
+ if (*(const size_t *) p != 0)
return false;
}
@@ -290,10 +290,10 @@ pg_memory_is_all_zeros(const void *ptr, size_t len)
*/
for (; p < aligned_end - (sizeof(size_t) * 7); p += sizeof(size_t) * 8)
{
- if ((((size_t *) p)[0] != 0) | (((size_t *) p)[1] != 0) |
- (((size_t *) p)[2] != 0) | (((size_t *) p)[3] != 0) |
- (((size_t *) p)[4] != 0) | (((size_t *) p)[5] != 0) |
- (((size_t *) p)[6] != 0) | (((size_t *) p)[7] != 0))
+ if ((((const size_t *) p)[0] != 0) | (((const size_t *) p)[1]
!= 0) |
+ (((const size_t *) p)[2] != 0) | (((const size_t *)
p)[3] != 0) |
+ (((const size_t *) p)[4] != 0) | (((const size_t *)
p)[5] != 0) |
+ (((const size_t *) p)[6] != 0) | (((const size_t *)
p)[7] != 0))
return false;
}
@@ -305,7 +305,7 @@ pg_memory_is_all_zeros(const void *ptr, size_t len)
*/
for (; p < aligned_end; p += sizeof(size_t))
{
- if (*(size_t *) p != 0)
+ if (*(const size_t *) p != 0)
return false;
}
diff --git a/src/include/varatt.h b/src/include/varatt.h
index eccd3ca04d6..03e9d1869aa 100644
--- a/src/include/varatt.h
+++ b/src/include/varatt.h
@@ -193,25 +193,25 @@ typedef struct
#ifdef WORDS_BIGENDIAN
#define VARATT_IS_4B(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x80) == 0x00)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x80) == 0x00)
#define VARATT_IS_4B_U(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0xC0) == 0x00)
+ ((((const varattrib_1b *) (PTR))->va_header & 0xC0) == 0x00)
#define VARATT_IS_4B_C(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0xC0) == 0x40)
+ ((((const varattrib_1b *) (PTR))->va_header & 0xC0) == 0x40)
#define VARATT_IS_1B(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x80) == 0x80)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x80) == 0x80)
#define VARATT_IS_1B_E(PTR) \
- ((((varattrib_1b *) (PTR))->va_header) == 0x80)
+ ((((const varattrib_1b *) (PTR))->va_header) == 0x80)
#define VARATT_NOT_PAD_BYTE(PTR) \
- (*((uint8 *) (PTR)) != 0)
+ (*((const uint8 *) (PTR)) != 0)
/* VARSIZE_4B() should only be used on known-aligned data */
#define VARSIZE_4B(PTR) \
- (((varattrib_4b *) (PTR))->va_4byte.va_header & 0x3FFFFFFF)
+ (((const varattrib_4b *) (PTR))->va_4byte.va_header & 0x3FFFFFFF)
#define VARSIZE_1B(PTR) \
- (((varattrib_1b *) (PTR))->va_header & 0x7F)
+ (((const varattrib_1b *) (PTR))->va_header & 0x7F)
#define VARTAG_1B_E(PTR) \
- ((vartag_external) ((varattrib_1b_e *) (PTR))->va_tag)
+ ((vartag_external) ((const varattrib_1b_e *) (PTR))->va_tag)
#define SET_VARSIZE_4B(PTR,len) \
(((varattrib_4b *) (PTR))->va_4byte.va_header = (len) & 0x3FFFFFFF)
@@ -226,25 +226,25 @@ typedef struct
#else /* !WORDS_BIGENDIAN */
#define VARATT_IS_4B(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x00)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x01) == 0x00)
#define VARATT_IS_4B_U(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x00)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x03) == 0x00)
#define VARATT_IS_4B_C(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x03) == 0x02)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x03) == 0x02)
#define VARATT_IS_1B(PTR) \
- ((((varattrib_1b *) (PTR))->va_header & 0x01) == 0x01)
+ ((((const varattrib_1b *) (PTR))->va_header & 0x01) == 0x01)
#define VARATT_IS_1B_E(PTR) \
- ((((varattrib_1b *) (PTR))->va_header) == 0x01)
+ ((((const varattrib_1b *) (PTR))->va_header) == 0x01)
#define VARATT_NOT_PAD_BYTE(PTR) \
- (*((uint8 *) (PTR)) != 0)
+ (*((const uint8 *) (PTR)) != 0)
/* VARSIZE_4B() should only be used on known-aligned data */
#define VARSIZE_4B(PTR) \
- ((((varattrib_4b *) (PTR))->va_4byte.va_header >> 2) & 0x3FFFFFFF)
+ ((((const varattrib_4b *) (PTR))->va_4byte.va_header >> 2) & 0x3FFFFFFF)
#define VARSIZE_1B(PTR) \
- ((((varattrib_1b *) (PTR))->va_header >> 1) & 0x7F)
+ ((((const varattrib_1b *) (PTR))->va_header >> 1) & 0x7F)
#define VARTAG_1B_E(PTR) \
- ((vartag_external) ((varattrib_1b_e *) (PTR))->va_tag)
+ ((vartag_external) ((const varattrib_1b_e *) (PTR))->va_tag)
#define SET_VARSIZE_4B(PTR,len) \
(((varattrib_4b *) (PTR))->va_4byte.va_header = (((uint32) (len)) << 2))
@@ -258,10 +258,10 @@ typedef struct
#endif /* WORDS_BIGENDIAN */
-#define VARDATA_4B(PTR) (((varattrib_4b *)
(PTR))->va_4byte.va_data)
-#define VARDATA_4B_C(PTR) (((varattrib_4b *)
(PTR))->va_compressed.va_data)
-#define VARDATA_1B(PTR) (((varattrib_1b *) (PTR))->va_data)
-#define VARDATA_1B_E(PTR) (((varattrib_1b_e *) (PTR))->va_data)
+#define VARDATA_4B(PTR) (((const varattrib_4b *)
(PTR))->va_4byte.va_data)
+#define VARDATA_4B_C(PTR) (((const varattrib_4b *)
(PTR))->va_compressed.va_data)
+#define VARDATA_1B(PTR) (((const varattrib_1b *)
(PTR))->va_data)
+#define VARDATA_1B_E(PTR) (((const varattrib_1b_e *) (PTR))->va_data)
/*
* Externally visible TOAST functions and macros begin here. All of these
@@ -492,14 +492,14 @@ VARDATA_ANY(const void *PTR)
static inline Size
VARDATA_COMPRESSED_GET_EXTSIZE(const void *PTR)
{
- return ((varattrib_4b *) PTR)->va_compressed.va_tcinfo &
VARLENA_EXTSIZE_MASK;
+ return ((const varattrib_4b *) PTR)->va_compressed.va_tcinfo &
VARLENA_EXTSIZE_MASK;
}
/* Compression method of a compressed-in-line varlena datum */
static inline uint32
VARDATA_COMPRESSED_GET_COMPRESS_METHOD(const void *PTR)
{
- return ((varattrib_4b *) PTR)->va_compressed.va_tcinfo >>
VARLENA_EXTSIZE_BITS;
+ return ((const varattrib_4b *) PTR)->va_compressed.va_tcinfo >>
VARLENA_EXTSIZE_BITS;
}
/* Same for external Datums; but note argument is a struct varatt_external */
diff --git a/src/interfaces/libpq/fe-auth-scram.c
b/src/interfaces/libpq/fe-auth-scram.c
index 05273c91f98..99103b7e2b6 100644
--- a/src/interfaces/libpq/fe-auth-scram.c
+++ b/src/interfaces/libpq/fe-auth-scram.c
@@ -819,7 +819,7 @@ calculate_client_proof(fe_scram_state *state,
strlen(state->server_first_message))
< 0 ||
pg_hmac_update(ctx, (uint8 *) ",", 1) < 0 ||
pg_hmac_update(ctx,
- (uint8 *)
client_final_message_without_proof,
+ (const uint8 *)
client_final_message_without_proof,
strlen(client_final_message_without_proof)) < 0 ||
pg_hmac_final(ctx, ClientSignature, state->key_length) < 0)
{
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index f08db30dbb7..f05aaea9651 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -1369,7 +1369,7 @@ PQencryptPassword(const char *passwd, const char *user)
if (!crypt_pwd)
return NULL;
- if (!pg_md5_encrypt(passwd, (uint8 *) user, strlen(user), crypt_pwd,
&errstr))
+ if (!pg_md5_encrypt(passwd, (const uint8 *) user, strlen(user),
crypt_pwd, &errstr))
{
free(crypt_pwd);
return NULL;
@@ -1482,7 +1482,7 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd,
const char *user,
{
const char *errstr = NULL;
- if (!pg_md5_encrypt(passwd, (uint8 *) user,
strlen(user), crypt_pwd, &errstr))
+ if (!pg_md5_encrypt(passwd, (const uint8 *) user,
strlen(user), crypt_pwd, &errstr))
{
libpq_append_conn_error(conn, "could not
encrypt password: %s", errstr);
free(crypt_pwd);
diff --git a/src/port/pg_crc32c_armv8.c b/src/port/pg_crc32c_armv8.c
index 039986c7b33..9ca0f728d39 100644
--- a/src/port/pg_crc32c_armv8.c
+++ b/src/port/pg_crc32c_armv8.c
@@ -42,32 +42,32 @@ pg_comp_crc32c_armv8(pg_crc32c crc, const void *data,
size_t len)
if (!PointerIsAligned(p, uint32) &&
p + 2 <= pend)
{
- crc = __crc32ch(crc, *(uint16 *) p);
+ crc = __crc32ch(crc, *(const uint16 *) p);
p += 2;
}
if (!PointerIsAligned(p, uint64) &&
p + 4 <= pend)
{
- crc = __crc32cw(crc, *(uint32 *) p);
+ crc = __crc32cw(crc, *(const uint32 *) p);
p += 4;
}
/* Process eight bytes at a time, as far as we can. */
while (p + 8 <= pend)
{
- crc = __crc32cd(crc, *(uint64 *) p);
+ crc = __crc32cd(crc, *(const uint64 *) p);
p += 8;
}
/* Process remaining 0-7 bytes. */
if (p + 4 <= pend)
{
- crc = __crc32cw(crc, *(uint32 *) p);
+ crc = __crc32cw(crc, *(const uint32 *) p);
p += 4;
}
if (p + 2 <= pend)
{
- crc = __crc32ch(crc, *(uint16 *) p);
+ crc = __crc32ch(crc, *(const uint16 *) p);
p += 2;
}
if (p < pend)
diff --git a/src/port/pg_popcount_aarch64.c b/src/port/pg_popcount_aarch64.c
index cda73cf6088..7c248ba7561 100644
--- a/src/port/pg_popcount_aarch64.c
+++ b/src/port/pg_popcount_aarch64.c
@@ -383,7 +383,7 @@ pg_popcount_neon(const char *buf, int bytes)
*/
for (; bytes >= sizeof(uint64); bytes -= sizeof(uint64))
{
- popcnt += pg_popcount64(*((uint64 *) buf));
+ popcnt += pg_popcount64(*((const uint64 *) buf));
buf += sizeof(uint64);
}
@@ -465,7 +465,7 @@ pg_popcount_masked_neon(const char *buf, int bytes, bits8
mask)
*/
for (; bytes >= sizeof(uint64); bytes -= sizeof(uint64))
{
- popcnt += pg_popcount64(*((uint64 *) buf) & mask64);
+ popcnt += pg_popcount64(*((const uint64 *) buf) & mask64);
buf += sizeof(uint64);
}
diff --git a/src/test/isolation/isolationtester.c
b/src/test/isolation/isolationtester.c
index e01c0c9de93..a0aec04d994 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -498,8 +498,8 @@ run_named_permutations(TestSpec *testspec)
static int
step_qsort_cmp(const void *a, const void *b)
{
- Step *stepa = *((Step **) a);
- Step *stepb = *((Step **) b);
+ Step *stepa = *((Step *const *) a);
+ Step *stepb = *((Step *const *) b);
return strcmp(stepa->name, stepb->name);
}
@@ -507,8 +507,8 @@ step_qsort_cmp(const void *a, const void *b)
static int
step_bsearch_cmp(const void *a, const void *b)
{
- char *stepname = (char *) a;
- Step *step = *((Step **) b);
+ const char *stepname = (const char *) a;
+ Step *step = *((Step *const *) b);
return strcmp(stepname, step->name);
}
diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c
b/src/test/modules/libpq_pipeline/libpq_pipeline.c
index 03371721460..4a9bb65b9bb 100644
--- a/src/test/modules/libpq_pipeline/libpq_pipeline.c
+++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c
@@ -1576,7 +1576,7 @@ test_singlerowmode(PGconn *conn)
"SELECT
generate_series(42, $1)",
1,
NULL,
- (const char **) param,
+ (const char *const *)
param,
NULL,
NULL,
0) != 1)
diff --git a/src/test/modules/test_tidstore/test_tidstore.c
b/src/test/modules/test_tidstore/test_tidstore.c
index 9a3a209da0b..c9a035fa494 100644
--- a/src/test/modules/test_tidstore/test_tidstore.c
+++ b/src/test/modules/test_tidstore/test_tidstore.c
@@ -56,16 +56,16 @@ itemptr_cmp(const void *left, const void *right)
OffsetNumber loff,
roff;
- lblk = ItemPointerGetBlockNumber((ItemPointer) left);
- rblk = ItemPointerGetBlockNumber((ItemPointer) right);
+ lblk = ItemPointerGetBlockNumber((const ItemPointerData *) left);
+ rblk = ItemPointerGetBlockNumber((const ItemPointerData *) right);
if (lblk < rblk)
return -1;
if (lblk > rblk)
return 1;
- loff = ItemPointerGetOffsetNumber((ItemPointer) left);
- roff = ItemPointerGetOffsetNumber((ItemPointer) right);
+ loff = ItemPointerGetOffsetNumber((const ItemPointerData *) left);
+ roff = ItemPointerGetOffsetNumber((const ItemPointerData *) right);
if (loff < roff)
return -1;
--
2.52.0