Revert "Replace pg_restrict by standard restrict"
Peter Eisentraut <peter@eisentraut.org>
Author:
Peter Eisentraut <peter@eisentraut.org>
Date: 2026-01-14T14:12:25Z
Releases:
19 (unreleased)
Revert "Replace pg_restrict by standard restrict" This reverts commit f0f2c0c1aef95757c4e7f144d5577e2b0d814279. The original problem that led to the use of pg_restrict was that MSVC couldn't handle plain restrict, and defining it to something else would conflict with its __declspec(restrict) that is used in system header files. In C11 mode, this is no longer a problem, as MSVC handles plain restrict. This led to the commit to replace pg_restrict with restrict. But this did not take C++ into account. Standard C++ does not have restrict, so we defined it as something else (for example, MSVC supports __restrict). But this then again conflicts with __declspec(restrict) in system header files. So we have to revert this attempt. The comments are updated to clarify that the reason for this is now C++ only. Reported-by: Jelte Fennema-Nio <postgres@jeltef.nl> Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/CAGECzQRoD7chJP1-dneSrhxUJv%2BBRcigoGOO4UwGzaShLot2Yw%40mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| configure | modified | +14 −4 |
| configure.ac | modified | +12 −4 |
| meson.build | modified | +7 −6 |
| src/bin/pg_verifybackup/pg_verifybackup.c | modified | +2 −2 |
| src/bin/pg_verifybackup/pg_verifybackup.h | modified | +2 −2 |
| src/common/logging.c | modified | +2 −2 |
| src/common/string.c | modified | +1 −1 |
| src/include/c.h | modified | +0 −6 |
| src/include/common/logging.h | modified | +2 −2 |
| src/include/common/string.h | modified | +1 −1 |
| src/include/libpq/pqformat.h | modified | +6 −6 |
| src/include/pg_config.h.in | modified | +4 −0 |
Discussion
- remove pg_restrict workaround 8 messages · 2025-10-15 → 2026-01-14