Enable -Wsign-conversion warnings Enables the -Wsign-conversion warnings for all of Dawn. Also fixes a few last dangling issues that snuck past the previous patches. Bug: 42240462 Change-Id: I3f2e931e82ec0ce815a476d28a690ed1a6864477 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/324797 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Brandon Jones <bajones@chromium.org> Auto-Submit: Brandon Jones <bajones@chromium.org>
diff --git a/src/dawn/native/d3d11/BufferD3D11.cpp b/src/dawn/native/d3d11/BufferD3D11.cpp index 937ec57..7e5d10d 100644 --- a/src/dawn/native/d3d11/BufferD3D11.cpp +++ b/src/dawn/native/d3d11/BufferD3D11.cpp
@@ -47,6 +47,7 @@ #include "src/utils/assert.h" #include "src/utils/compiler.h" #include "src/utils/heap_array.h" +#include "src/utils/numeric.h" namespace dawn::native::d3d11 { @@ -1508,7 +1509,7 @@ alignedBuffer = DAWN_UNSAFE_BUFFERS(HeapArray<uint8_t>::Uninit(alignedSize)); std::ranges::copy( DAWN_UNSAFE_TODO(Span<const uint8_t>{static_cast<const uint8_t*>(data), size}), - alignedBuffer.begin() + leftExtraBytes); + alignedBuffer.begin() + sign_cast(leftExtraBytes)); data = alignedBuffer.data(); }
diff --git a/src/dawn/native/null/DeviceNull.cpp b/src/dawn/native/null/DeviceNull.cpp index 8e17c43..2dfddc0 100644 --- a/src/dawn/native/null/DeviceNull.cpp +++ b/src/dawn/native/null/DeviceNull.cpp
@@ -40,6 +40,7 @@ #include "src/dawn/native/Surface.h" #include "src/dawn/native/TintUtils.h" #include "src/utils/compiler.h" +#include "src/utils/numeric.h" #include "tint/tint.h" namespace dawn::native::null { @@ -389,7 +390,7 @@ uint64_t size) { // TODO(https://crbug.com/524406299): Use Span::CopyFrom. std::ranges::copy(staging->GetCurrentMapping().GetMappedSubspan(sourceOffset, size), - mBackingData.begin() + destinationOffset); + mBackingData.begin() + sign_cast(destinationOffset)); } void Buffer::DoWriteBuffer(uint64_t bufferOffset, Span<const std::byte> data) {
diff --git a/src/dawn/node/binding/GPUDevice.cpp b/src/dawn/node/binding/GPUDevice.cpp index ec95357..5d96cb3 100644 --- a/src/dawn/node/binding/GPUDevice.cpp +++ b/src/dawn/node/binding/GPUDevice.cpp
@@ -54,6 +54,7 @@ #include "src/dawn/node/binding/GPUTexture.h" #include "src/dawn/node/utils/Debug.h" #include "src/utils/compiler.h" +#include "src/utils/numeric.h" namespace wgpu::binding { @@ -104,7 +105,7 @@ n = DAWN_UNSAFE_TODO(printf("%.*s", static_cast<int>(msg.length), msg.data)); } DAWN_UNSAFE_TODO(msg.data += n); - msg.length -= n; + msg.length -= dawn::sign_cast(n); } }
diff --git a/src/dawn/wire/ChunkedCommandHandler.cpp b/src/dawn/wire/ChunkedCommandHandler.cpp index dfaf5aa..693cbab 100644 --- a/src/dawn/wire/ChunkedCommandHandler.cpp +++ b/src/dawn/wire/ChunkedCommandHandler.cpp
@@ -34,6 +34,7 @@ #include "src/utils/compiler.h" #include "src/utils/heap_array.h" +#include "src/utils/numeric.h" namespace dawn::wire { @@ -74,7 +75,7 @@ } // TODO(https://crbug.com/524406299): Use Span::CopyFrom. std::ranges::copy(DAWN_UNSAFE_TODO(Span<const char>{cmd.chunkData, cmd.chunkSize}), - chunkedCommand->data.begin() + chunkedCommand->putOffset); + chunkedCommand->data.begin() + sign_cast(chunkedCommand->putOffset)); chunkedCommand->putOffset += cmd.chunkSize; if (chunkedCommand->GetRemainingSize() == 0) {
diff --git a/src/dawn/wire/client/ClientInlineMemoryTransferService.cpp b/src/dawn/wire/client/ClientInlineMemoryTransferService.cpp index bb10f08..fa1a214 100644 --- a/src/dawn/wire/client/ClientInlineMemoryTransferService.cpp +++ b/src/dawn/wire/client/ClientInlineMemoryTransferService.cpp
@@ -35,6 +35,7 @@ #include "src/utils/assert.h" #include "src/utils/compiler.h" #include "src/utils/heap_array.h" +#include "src/utils/numeric.h" namespace dawn::wire::client { @@ -80,7 +81,7 @@ return false; } - std::ranges::copy(deserializeData, GetData().begin() + offset); + std::ranges::copy(deserializeData, GetData().begin() + sign_cast(offset)); return true; }
diff --git a/src/utils/BUILD.gn b/src/utils/BUILD.gn index 1b6860e..1de20c7 100644 --- a/src/utils/BUILD.gn +++ b/src/utils/BUILD.gn
@@ -231,7 +231,6 @@ # Arithmetic "-Wno-implicit-float-conversion", "-Wno-implicit-int-conversion", - "-Wno-sign-conversion", ] # P1. Likely to help with hardening.