From 6e06f62816fc99e7cc2e5ea8210fe413916d74cf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 25 Oct 2026 18:18:29 -0400 Subject: [PATCH] Fix "variable set but not used" warning with unnamed POSIX semaphores. Late-model clang is able to notice, when building posix_sema.c with USE_NAMED_POSIX_SEMAPHORES not defined, that the static variable nextSemKey is set once and read nowhere. Rearrange the #ifdef's to not declare or set it unless USE_NAMED_POSIX_SEMAPHORES. As a small side benefit, we can skip a stat() call altogether if we're not going to need it to initialize this variable, which I think clarifies the code a fraction. Per buildfarm member fritillary. --- src/backend/port/posix_sema.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/port/posix_sema.c b/src/backend/port/posix_sema.c index 53e4a7a5c38..05a8b2222aa 100644 --- a/src/backend/port/posix_sema.c +++ b/src/backend/port/posix_sema.c @@ -65,7 +65,10 @@ static PGSemaphore sharedSemas; /* array of PGSemaphoreData in shared memory */ #endif static int numSems; /* number of semas acquired so far */ static int maxSems; /* allocated size of above arrays */ + +#ifdef USE_NAMED_POSIX_SEMAPHORES static int nextSemKey; /* next name to try */ +#endif static void ReleaseSemaphores(int status, Datum arg); @@ -197,6 +200,7 @@ PGSemaphoreShmemRequest(int maxSemas) void PGSemaphoreInit(int maxSemas) { +#ifdef USE_NAMED_POSIX_SEMAPHORES struct stat statbuf; /* @@ -210,6 +214,8 @@ PGSemaphoreInit(int maxSemas) (errcode_for_file_access(), errmsg("could not stat data directory \"%s\": %m", DataDir))); + nextSemKey = statbuf.st_ino; +#endif #ifdef USE_NAMED_POSIX_SEMAPHORES mySemPointers = (sem_t **) malloc(maxSemas * sizeof(sem_t *)); @@ -219,7 +225,6 @@ PGSemaphoreInit(int maxSemas) numSems = 0; maxSems = maxSemas; - nextSemKey = statbuf.st_ino; on_shmem_exit(ReleaseSemaphores, 0); }