https://github.com/python/cpython/commit/dcf90877e47b15d3e364b7b1855c44f1832fa253
commit: dcf90877e47b15d3e364b7b1855c44f1832fa253
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2026-11-08T19:04:21Z
summary:
gh-161625: Fix compiler warnings in _remote_debugging (#161626)
Fix compiler warnings when Python is built in 32-bit mode on Windows.
files:
M Modules/_remote_debugging/binary_io_reader.c
M Modules/_remote_debugging/frames.c
M Modules/_remote_debugging/gc_stats.c
M Modules/_remote_debugging/object_reading.c
M Modules/_remote_debugging/threads.c
diff --git a/Modules/_remote_debugging/binary_io_reader.c
b/Modules/_remote_debugging/binary_io_reader.c
index 80627db913ea21b..a51a2e475c9e06b 100644
--- a/Modules/_remote_debugging/binary_io_reader.c
+++ b/Modules/_remote_debugging/binary_io_reader.c
@@ -365,7 +365,7 @@ static inline int
reader_parse_string_table(BinaryReader *reader, const uint8_t *data, size_t
file_size)
{
if (reader_validate_count("string", reader->strings_count,
- file_size - reader->string_table_offset,
+ file_size - (size_t)reader->string_table_offset,
MIN_STRING_ENTRY_SIZE) < 0) {
return -1;
}
@@ -376,7 +376,7 @@ reader_parse_string_table(BinaryReader *reader, const
uint8_t *data, size_t file
return -1;
}
- size_t offset = reader->string_table_offset;
+ size_t offset = (size_t)reader->string_table_offset;
for (uint32_t i = 0; i < reader->strings_count; i++) {
size_t prev_offset = offset;
uint32_t str_len = decode_varint_u32(data, &offset, file_size);
@@ -411,7 +411,7 @@ reader_parse_frame_table(BinaryReader *reader, const
uint8_t *data, size_t file_
#endif
if (reader_validate_count("frame", reader->frames_count,
- file_size - reader->frame_table_offset,
+ file_size - (size_t)reader->frame_table_offset,
MIN_FRAME_ENTRY_SIZE) < 0) {
return -1;
}
@@ -423,7 +423,7 @@ reader_parse_frame_table(BinaryReader *reader, const
uint8_t *data, size_t file_
return -1;
}
- size_t offset = reader->frame_table_offset;
+ size_t offset = (size_t)reader->frame_table_offset;
for (uint32_t i = 0; i < reader->frames_count; i++) {
FrameEntry *frame = &reader->frames[i];
size_t prev_offset;
@@ -694,7 +694,7 @@ binary_reader_open(PyObject *path)
#endif
} else {
reader->sample_data = data + FILE_HEADER_PLACEHOLDER_SIZE;
- reader->sample_data_size = reader->string_table_offset -
FILE_HEADER_PLACEHOLDER_SIZE;
+ reader->sample_data_size = (size_t)reader->string_table_offset -
FILE_HEADER_PLACEHOLDER_SIZE;
}
/* Parse string and frame tables */
@@ -871,7 +871,7 @@ decode_stack_suffix(ReaderThreadState *ts, const uint8_t
*data,
return -1;
}
}
- ts->current_stack_depth = final_depth;
+ ts->current_stack_depth = (size_t)final_depth;
return 0;
}
@@ -916,7 +916,7 @@ decode_stack_pop_push(ReaderThreadState *ts, const uint8_t
*data,
return -1;
}
}
- ts->current_stack_depth = final_depth;
+ ts->current_stack_depth = (size_t)final_depth;
return 0;
}
@@ -1262,7 +1262,7 @@ binary_reader_replay(BinaryReader *reader, PyObject
*collector, PyObject *progre
reader->stats.total_samples += count;
/* Progress callback after batch */
- if (replayed % PROGRESS_CALLBACK_INTERVAL < count) {
+ if ((uint64_t)replayed % PROGRESS_CALLBACK_INTERVAL <
(uint64_t)count) {
if (invoke_progress_callback(progress_callback, replayed,
reader->sample_count) < 0) {
return -1;
}
diff --git a/Modules/_remote_debugging/frames.c
b/Modules/_remote_debugging/frames.c
index f5b9ed72f1f98e9..19a9b5369148a98 100644
--- a/Modules/_remote_debugging/frames.c
+++ b/Modules/_remote_debugging/frames.c
@@ -465,7 +465,7 @@ clear_last_profiled_frames(RemoteUnwinderObject *unwinder)
uintptr_t tstate_addr;
if (_Py_RemoteDebug_PagedReadRemoteMemory(
&unwinder->handle,
- current_interp +
unwinder->debug_offsets.interpreter_state.threads_head,
+ current_interp +
(uintptr_t)unwinder->debug_offsets.interpreter_state.threads_head,
sizeof(void*),
&tstate_addr) < 0) {
// Non-fatal: just skip clearing
@@ -486,7 +486,7 @@ clear_last_profiled_frames(RemoteUnwinderObject *unwinder)
// Move to next thread
if (_Py_RemoteDebug_PagedReadRemoteMemory(
&unwinder->handle,
- tstate_addr + unwinder->debug_offsets.thread_state.next,
+ tstate_addr +
(uintptr_t)unwinder->debug_offsets.thread_state.next,
sizeof(void*),
&tstate_addr) < 0) {
PyErr_Clear();
@@ -497,7 +497,7 @@ clear_last_profiled_frames(RemoteUnwinderObject *unwinder)
// Move to next interpreter
if (_Py_RemoteDebug_PagedReadRemoteMemory(
&unwinder->handle,
- current_interp +
unwinder->debug_offsets.interpreter_state.next,
+ current_interp +
(uintptr_t)unwinder->debug_offsets.interpreter_state.next,
sizeof(void*),
¤t_interp) < 0) {
PyErr_Clear();
diff --git a/Modules/_remote_debugging/gc_stats.c
b/Modules/_remote_debugging/gc_stats.c
index 23fa879b5032837..4dc77803a0a9f3c 100644
--- a/Modules/_remote_debugging/gc_stats.c
+++ b/Modules/_remote_debugging/gc_stats.c
@@ -88,8 +88,8 @@ get_gc_stats_from_interpreter_state(RuntimeOffsets *offsets,
uintptr_t gc_stats_addr = 0;
uintptr_t gc_stats_pointer_address = interpreter_state_addr
- + offsets->debug_offsets.interpreter_state.gc
- + offsets->debug_offsets.gc.generation_stats;
+ + (uintptr_t)offsets->debug_offsets.interpreter_state.gc
+ + (uintptr_t)offsets->debug_offsets.gc.generation_stats;
if (_Py_RemoteDebug_ReadRemoteMemory(&offsets->handle,
gc_stats_pointer_address,
sizeof(gc_stats_addr),
diff --git a/Modules/_remote_debugging/object_reading.c
b/Modules/_remote_debugging/object_reading.c
index e449b446a1fe544..6f138f3de3503b6 100644
--- a/Modules/_remote_debugging/object_reading.c
+++ b/Modules/_remote_debugging/object_reading.c
@@ -279,7 +279,7 @@ read_py_long(
}
// Calculate how many digits fit inline in our local buffer
- Py_ssize_t ob_digit_offset = unwinder->debug_offsets.long_object.ob_digit;
+ Py_ssize_t ob_digit_offset =
(Py_ssize_t)unwinder->debug_offsets.long_object.ob_digit;
Py_ssize_t inline_digits_space = SIZEOF_LONG_OBJ - ob_digit_offset;
Py_ssize_t max_inline_digits = inline_digits_space /
(Py_ssize_t)sizeof(digit);
diff --git a/Modules/_remote_debugging/threads.c
b/Modules/_remote_debugging/threads.c
index 120065022ddc8ee..a3bd6c9edfb58eb 100644
--- a/Modules/_remote_debugging/threads.c
+++ b/Modules/_remote_debugging/threads.c
@@ -447,9 +447,9 @@ unwind_stack_for_thread(
unwinder->debug_offsets.thread_state.current_exception +
sizeof(uintptr_t));
uintptr_t exc_state_addr =
- *current_tstate + unwinder->debug_offsets.thread_state.exc_state;
+ *current_tstate +
(uintptr_t)unwinder->debug_offsets.thread_state.exc_state;
uintptr_t exc_value_offset =
- unwinder->debug_offsets.err_stackitem.exc_value;
+ (uintptr_t)unwinder->debug_offsets.err_stackitem.exc_value;
uintptr_t previous_item_offset =
exc_value_offset + sizeof(uintptr_t);
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]