diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index a24ebe61dee..91ab55b175f 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -57,8 +57,8 @@ class MDString : public MetadataBase { StringRef Str; protected: - explicit MDString(LLVMContext &C, const char *begin, unsigned l) - : MetadataBase(Type::getMetadataTy(C), Value::MDStringVal), Str(begin, l) {} + explicit MDString(LLVMContext &C, StringRef S) + : MetadataBase(Type::getMetadataTy(C), Value::MDStringVal), Str(S) {} public: static MDString *get(LLVMContext &Context, StringRef Str); diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 8b37681b96b..3e3ea7725a5 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -33,7 +33,8 @@ MDString *MDString::get(LLVMContext &Context, StringRef Str) { MDString *&S = Entry.getValue(); if (S) return S; - return S = new MDString(Context, Entry.getKeyData(), Entry.getKeyLength()); + return S = + new MDString(Context, StringRef(Entry.getKeyData(), Entry.getKeyLength())); } //===----------------------------------------------------------------------===//