[llvm] 85c7a7f - [DirectX] Don't byte-swap returned byte-offset (#155860)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 28 09:59:42 PDT 2025
Author: Finn Plummer
Date: 2025-08-28T09:59:38-07:00
New Revision: 85c7a7f3b8d9856e6d1e3c63e3a7e387367ed072
URL: https://github.com/llvm/llvm-project/commit/85c7a7f3b8d9856e6d1e3c63e3a7e387367ed072
DIFF: https://github.com/llvm/llvm-project/commit/85c7a7f3b8d9856e6d1e3c63e3a7e387367ed072.diff
LOG: [DirectX] Don't byte-swap returned byte-offset (#155860)
- The returned byte offset from `rewriteOffsetToCurrentByte` should not
be byte-swapped as it will be compared and interpreted as a uint32_t in
its uses
This commit corrects build failures that hit an assert on big-endian
builds
Added:
Modified:
llvm/lib/MC/DXContainerRootSignature.cpp
Removed:
################################################################################
diff --git a/llvm/lib/MC/DXContainerRootSignature.cpp b/llvm/lib/MC/DXContainerRootSignature.cpp
index 3513892ffcdcc..4d5322b5b3cbe 100644
--- a/llvm/lib/MC/DXContainerRootSignature.cpp
+++ b/llvm/lib/MC/DXContainerRootSignature.cpp
@@ -22,11 +22,12 @@ static uint32_t writePlaceholder(raw_svector_ostream &Stream) {
static uint32_t rewriteOffsetToCurrentByte(raw_svector_ostream &Stream,
uint32_t Offset) {
+ uint32_t ByteOffset = Stream.tell();
uint32_t Value =
support::endian::byte_swap<uint32_t, llvm::endianness::little>(
- Stream.tell());
+ ByteOffset);
Stream.pwrite(reinterpret_cast<const char *>(&Value), sizeof(Value), Offset);
- return Value;
+ return ByteOffset;
}
size_t RootSignatureDesc::getSize() const {
More information about the llvm-commits
mailing list