Re: Change copyObject() to use typeof_unqual

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>, Peter Eisentraut <peter@eisentraut.org>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-17T02:49:26Z
Lists: pgsql-hackers
I wrote:
> $ clang --version
> clang version 21.1.8 (Fedora 21.1.8-4.fc43)

> While this version of clang doesn't like typeof_unqual, it does take
> __typeof_unqual__.  So maybe we were premature to decide that we
> could prefer the typeof_unqual spelling.  I can get it to build
> if I use __typeof_unqual__.

After further experimentation: it will take typeof_unqual with
"-std=c23" ... but, again, we are not passing it that switch,
and the default is evidently some older C version.

			regards, tom lane



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add some const qualifiers enabled by typeof_unqual change on copyObject

  2. Hardcode typeof_unqual to __typeof_unqual__ for clang

  3. Clean up postgres_fdw/t/010_subscription.pl.

  4. Hardcode override of typeof_unqual for clang-for-bitcode

  5. Make typeof and typeof_unqual fallback definitions work on C++11

  6. Change copyObject() to use typeof_unqual

  7. Fixes for C++ typeof implementation

  8. Support using copyObject in standard C++