[llvm] [DirectX][MC] Fix dangling StringRefs in DXContainerWriterTest (PR #211227)
Vladislav Dzhidzhoev via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 22 03:32:46 PDT 2026
https://github.com/dzhidzhoev created https://github.com/llvm/llvm-project/pull/211227
Building Parts from SmallString elements invalidated StringRefs on vector reallocation, so the test was dying under MSan before the expected fatal error.
Fixes buildbot failures https://github.com/llvm/llvm-project/pull/204903#issuecomment-5039669504.
>From be1c20964876f9cf55c164ecc3a597c094814c2b Mon Sep 17 00:00:00 2001
From: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: Wed, 22 Jul 2026 12:30:18 +0200
Subject: [PATCH] [DirectX][MC] Fix dangling StringRefs in
DXContainerWriterTest
Building Parts from SmallString elements invalidated StringRefs on
vector reallocation, so PrivMustBeLast died under MSan before
the expected fatal error.
Fixes buildbot failures
https://github.com/llvm/llvm-project/pull/204903#issuecomment-5039669504.
---
llvm/unittests/MC/DXContainerWriterTest.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/llvm/unittests/MC/DXContainerWriterTest.cpp b/llvm/unittests/MC/DXContainerWriterTest.cpp
index 3641e873dbf4f..65adb6d278433 100644
--- a/llvm/unittests/MC/DXContainerWriterTest.cpp
+++ b/llvm/unittests/MC/DXContainerWriterTest.cpp
@@ -6,6 +6,7 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/ADT/StringExtras.h"
#include "llvm/MC/MCDXContainerWriter.h"
#include "llvm/Object/DXContainer.h"
#include "llvm/Support/Error.h"
@@ -20,8 +21,8 @@ using namespace llvm::object;
namespace {
class TestDXContainerWriter : public MCDXContainerBaseWriter {
- SmallVector<SmallString<8>> PartNames;
- SmallVector<SmallString<32>> PartData;
+ SmallVector<StringRef> PartNames;
+ SmallVector<StringRef> PartData;
SmallVector<MCDXContainerPart> Parts;
protected:
@@ -30,7 +31,7 @@ class TestDXContainerWriter : public MCDXContainerBaseWriter {
public:
void addPart(StringRef Name, ArrayRef<uint8_t> Data) {
PartNames.emplace_back(Name);
- PartData.emplace_back(Data.begin(), Data.end());
+ PartData.emplace_back(llvm::toStringRef(Data));
Parts.push_back({PartNames.back(), PartData.back()});
}
};
More information about the llvm-commits
mailing list