diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/IR/Metadata.h | 3 | ||||
| -rw-r--r-- | llvm/lib/IR/Metadata.cpp | 4 |
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(); } //===----------------------------------------------------------------------===// |

