Re: Change copyObject() to use typeof_unqual
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jelte Fennema-Nio <postgres@jeltef.nl>
Cc: Peter Eisentraut <peter@eisentraut.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-16T15:32:15Z
Lists: pgsql-hackers
Jelte Fennema-Nio <postgres@jeltef.nl> writes: > On Mon, 16 Mar 2026 at 13:47, Peter Eisentraut <peter@eisentraut.org> wrote: >> I'm tempted to go with my proposed patch of a version-based override for >> the time being. > Sounds good to me. I confirmed that Peter's 0001-Hardcode-override-of-typeof_unqual-for-clang-for-bit.patch fixes the problem on my Fedora 40 system. I concur it seems a lot less messy than Jelte's patch, although I have a nasty feeling that we'll eventually need something closer to that. > But let's not forget to swap back the order of > detection for typeof_unqual vs __typeof_unqual__. Afaict that's not > needed anymore and the comment there only becomes confusing with this > new fix. +1 > Also, it might be nice to only do your version based override, if > we're actually compiling bitcode. In my patch I used > -DPG_COMPILING_BITCODE for that. Otherwise this override can also > happen for regular compiles using clang, which I think would be a bit > confusing. Doesn't seem like an issue. If we're using an old clang as CC, we would have detected that it doesn't accept typeof_unqual anyway. I think there is also no effect if we are using gcc as CC and clang++ as CXX, because per upthread discussion, typeof_unqual isn't going to work in C++ mode anyhow. 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 →
-
Add some const qualifiers enabled by typeof_unqual change on copyObject
- 7724cb9935a9 19 (unreleased) landed
-
Hardcode typeof_unqual to __typeof_unqual__ for clang
- 2eb6cd327cae 19 (unreleased) landed
-
Clean up postgres_fdw/t/010_subscription.pl.
- f4af7849b3db 19 (unreleased) cited
-
Hardcode override of typeof_unqual for clang-for-bitcode
- 63275ce84d2f 19 (unreleased) landed
-
Make typeof and typeof_unqual fallback definitions work on C++11
- cd083b54bd67 19 (unreleased) landed
-
Change copyObject() to use typeof_unqual
- 59292f7aac72 19 (unreleased) landed
- 4cfce4e62c8f 19 (unreleased) landed
-
Fixes for C++ typeof implementation
- 9c05f152b5dd 19 (unreleased) landed
-
Support using copyObject in standard C++
- 1887d822f142 19 (unreleased) cited