From 93f612831ab406137388d6853f1596c948c58df2 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 20 Mar 2025 17:01:52 +0100 Subject: [PATCH] gh-131296: fix clang-cl warning in tracemalloc.c Always set MAX_NFRAME to UINT16_MAX. Avoid the complicated code which emitted a compiler warning. --- Python/tracemalloc.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Python/tracemalloc.c b/Python/tracemalloc.c index 82e9c6f95e9cf4..fdce7eac1d12f7 100644 --- a/Python/tracemalloc.c +++ b/Python/tracemalloc.c @@ -48,10 +48,7 @@ typedef struct tracemalloc_traceback traceback_t; #define TRACEBACK_SIZE(NFRAME) \ (sizeof(traceback_t) + sizeof(frame_t) * (NFRAME - 1)) -/* The maximum number of frames is either: - - The maximum number of frames we can store in `traceback_t.nframe` - - The maximum memory size_t we can allocate */ -static const unsigned long MAX_NFRAME = Py_MIN(UINT16_MAX, ((SIZE_MAX - sizeof(traceback_t)) / sizeof(frame_t) + 1)); +static const int MAX_NFRAME = UINT16_MAX; #define tracemalloc_empty_traceback _PyRuntime.tracemalloc.empty_traceback @@ -783,9 +780,9 @@ tracemalloc_deinit(void) int _PyTraceMalloc_Start(int max_nframe) { - if (max_nframe < 1 || (unsigned long) max_nframe > MAX_NFRAME) { + if (max_nframe < 1 || max_nframe > MAX_NFRAME) { PyErr_Format(PyExc_ValueError, - "the number of frames must be in range [1; %lu]", + "the number of frames must be in range [1; %i]", MAX_NFRAME); return -1; }