From 20be0583b5be721cb7065e7f4c4c4ad6a5e655e7 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Fri, 31 Jul 2009 21:35:40 +0000 Subject: Move the metadata constructors back to 2.5 syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77733 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Metadata.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include/llvm/Metadata.h') diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index 7526919..95100c2 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -27,6 +27,7 @@ namespace llvm { class Constant; +class LLVMContext; //===----------------------------------------------------------------------===// // MetadataBase - A base class for MDNode, MDString and NamedMDNode. @@ -64,13 +65,14 @@ public: class MDString : public MetadataBase { MDString(const MDString &); // DO NOT IMPLEMENT StringRef Str; - friend class LLVMContextImpl; protected: explicit MDString(const char *begin, unsigned l) : MetadataBase(Type::MetadataTy, Value::MDStringVal), Str(begin, l) {} public: + static MDString *get(LLVMContext &Context, const StringRef &Str); + StringRef getString() const { return Str; } unsigned length() const { return Str.size(); } @@ -97,14 +99,15 @@ public: class MDNode : public MetadataBase, public FoldingSetNode { MDNode(const MDNode &); // DO NOT IMPLEMENT - friend class LLVMContextImpl; - SmallVector Node; typedef SmallVectorImpl::iterator elem_iterator; protected: explicit MDNode(Value*const* Vals, unsigned NumVals); public: + static MDNode *get(LLVMContext &Context, + Value* const* Vals, unsigned NumVals); + typedef SmallVectorImpl::const_iterator const_elem_iterator; Value *getElement(unsigned i) const { -- cgit v1.1