aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/file/fd.c
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2021-07-20 10:49:08 +1200
committerThomas Munro <tmunro@postgresql.org>2021-07-20 11:19:13 +1200
commit0c08856856f54056ce8db116e9d254fda114c383 (patch)
treeaedb0262beeeb46b3b689fafda9acb46c3f49e69 /src/backend/storage/file/fd.c
parent0d2cb6b2bbc3327dd002f3ecd4d5bde5851b0cdc (diff)
downloadpostgresql-0c08856856f54056ce8db116e9d254fda114c383.tar.gz
postgresql-0c08856856f54056ce8db116e9d254fda114c383.zip
Don't use #if inside function-like macro arguments.
No concrete problem reported, but in the past it's been known to cause problems on some compilers so let's avoid doing that. Reported-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/234364.1626704007%40sss.pgh.pa.us
Diffstat (limited to 'src/backend/storage/file/fd.c')
-rw-r--r--src/backend/storage/file/fd.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index abb054ad7f3..5d5e8ae94e0 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -1065,13 +1065,7 @@ tryAgain:
*/
StaticAssertStmt((PG_O_DIRECT &
(O_APPEND |
-#if defined(O_CLOEXEC)
- O_CLOEXEC |
-#endif
O_CREAT |
-#if defined(O_DSYNC)
- O_DSYNC |
-#endif
O_EXCL |
O_RDWR |
O_RDONLY |
@@ -1079,6 +1073,15 @@ tryAgain:
O_TRUNC |
O_WRONLY)) == 0,
"PG_O_DIRECT value collides with standard flag");
+#if defined(O_CLOEXEC)
+ StaticAssertStmt((PG_O_DIRECT & O_CLOEXEC) == 0,
+ "PG_O_DIRECT value collides with O_CLOEXEC");
+#endif
+#if defined(O_DSYNC)
+ StaticAssertStmt((PG_O_DIRECT & O_DSYNC) == 0,
+ "PG_O_DIRECT value collides with O_DSYNC");
+#endif
+
fd = open(fileName, fileFlags & ~PG_O_DIRECT, fileMode);
#else
fd = open(fileName, fileFlags, fileMode);