BUG: Fix warning "differs in levels of indirection" in npy_atomic.h with MSVC #27574
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #27557.
This pr is to fix #27547
Fixed a warning in MSVC (C4047) that occurs due to a mismatch in levels of
indirection between 'void *' and 'volatile uint64_t'. The issue arises in the
MSC_ATOMICS section where a return statement in npy_atomic.h attempts to
return a uint64_t value, but the function expects a void pointer.
The fix involves casting the uint64_t result back to a void pointer using
(uintptr_t) to ensure compatibility and eliminate the warning.
Tested on MSVC 19.29 with numpy 2.1.2 to verify that the warning no longer
appears during compilation.
Fix pointer indirection warning (C4047) in npy_atomic.h for MSVC
Fix pointer indirection warning (C4047) in npy_atomic.h for MSVC
Fix atomic pointer loading with proper type casting for various architectures
Update numpy/_core/src/common/npy_atomic.h
Update numpy/_core/src/common/npy_atomic.h
Update numpy/_core/src/common/npy_atomic.h
Update numpy/_core/src/common/npy_atomic.h
Update numpy/_core/src/common/npy_atomic.h