summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/IR/Metadata.h3
-rw-r--r--llvm/lib/IR/Metadata.cpp4
2 files changed, 5 insertions, 2 deletions
diff --git a/llvm/include/llvm/IR/Metadata.h b/llvm/include/llvm/IR/Metadata.h
index a056b0d2973..189ea3e73d6 100644
--- a/llvm/include/llvm/IR/Metadata.h
+++ b/llvm/include/llvm/IR/Metadata.h
@@ -63,8 +63,9 @@ class MDString : public Metadata {
virtual void anchor();
MDString(const MDString &) LLVM_DELETED_FUNCTION;
+ StringMapEntry<MDString> *Entry;
explicit MDString(LLVMContext &Context)
- : Metadata(Context, Value::MDStringVal) {}
+ : Metadata(Context, Value::MDStringVal), Entry(nullptr) {}
/// \brief Shadow Value::getName() to prevent its use.
StringRef getName() const LLVM_DELETED_FUNCTION;
diff --git a/llvm/lib/IR/Metadata.cpp b/llvm/lib/IR/Metadata.cpp
index 27ba9f7a87b..3a7c293bcdd 100644
--- a/llvm/lib/IR/Metadata.cpp
+++ b/llvm/lib/IR/Metadata.cpp
@@ -48,11 +48,13 @@ MDString *MDString::get(LLVMContext &Context, StringRef Str) {
bool WasInserted = Store.insert(Entry);
(void)WasInserted;
assert(WasInserted && "Expected entry to be inserted");
+ Entry->second.Entry = Entry;
return &Entry->second;
}
StringRef MDString::getString() const {
- return StringMapEntry<MDString>::GetStringMapEntryFromValue(*this).first();
+ assert(Entry && "Expected to find string map entry");
+ return Entry->first();
}
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud