Re: Fix accidentally cast away qualifiers
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-01-21T11:31:27Z
Lists: pgsql-hackers
On 20.01.26 13:10, Bertrand Drouvot wrote: > On Tue, Jan 20, 2026 at 08:54:18AM +0100, Peter Eisentraut wrote: >> 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. > > 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 > > It looks like those changes produce: > > ../../../src/include/varatt.h: In function ‘VARDATA’: > ../../../src/include/varatt.h:261:33: warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] > 261 | #define VARDATA_4B(PTR) (((const varattrib_4b *) (PTR))->va_4byte.va_data) Strange, I don't see that. What compiler is this, and do you use any special options? > Also [1], detected a few more trivially fixable ones (see attached). Yes, these should be included. The one in spgquadtreeproc.c was #ifdef'ed out, so my testing didn't see it. I suppose the other one is only compiled when you run the unicode tests.
Commits
-
Fix accidentally cast away qualifiers
- 5ca5f12c2c62 19 (unreleased) landed