On Wed, Jan 15, 2025 at 11:34:14PM -0500, Tom Lane wrote: > Michael Paquier <[email protected]> writes: > > I cannot reproduce that, perhaps I'm just missing something with these > > switches. Do you think that a cast would cool things? Please see the > > attached for the idea. > > There are only three animals showing this warning (ayu, batfish, > demoiselle) so it likely requires particular clang versions > as well as the right -W switches.
All of them on ppc with clang 4 or 5. That's dated. :) > Maybe a cast would silence it, but your draft seems > underparenthesized. (Which raises the question of whether we > should be using a macro for this at all --- probably there's > not much risk of double-evaluation being a problem, but a > static inline would remove the risk.) Just for an assert, I would just remove the macro rather than have an inline function. -- Michael
diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c
index e03b021af3..12d54d5c4a 100644
--- a/src/backend/utils/activity/pgstat_io.c
+++ b/src/backend/utils/activity/pgstat_io.c
@@ -23,14 +23,6 @@
static PgStat_PendingIO PendingIOStats;
static bool have_iostats = false;
-/*
- * Check if an IOOp is tracked in bytes. This relies on the ordering of IOOp
- * defined in pgstat.h, so make sure to update this check when changing its
- * elements.
- */
-#define pgstat_is_ioop_tracked_in_bytes(io_op) \
- ((io_op) < IOOP_NUM_TYPES && (io_op) >= IOOP_EXTEND)
-
/*
* Check that stats have not been counted for any combination of IOObject,
* IOContext, and IOOp which are not tracked for the passed-in BackendType. If
@@ -78,7 +70,8 @@ pgstat_count_io_op(IOObject io_object, IOContext io_context, IOOp io_op,
{
Assert((unsigned int) io_object < IOOBJECT_NUM_TYPES);
Assert((unsigned int) io_context < IOCONTEXT_NUM_TYPES);
- Assert(pgstat_is_ioop_tracked_in_bytes(io_op) || bytes == 0);
+ Assert(((unsigned int) io_op < IOOP_NUM_TYPES &&
+ (unsigned int) io_op >= IOOP_EXTEND) || bytes == 0);
Assert(pgstat_tracks_io_op(MyBackendType, io_object, io_context, io_op));
if (pgstat_tracks_backend_bktype(MyBackendType))
signature.asc
Description: PGP signature
