+ /// getNameLen - Return the length of the string, correctly handling nul
+ /// characters embedded into them.
+ unsigned getNameLen() const;
+
+ /// getName()/getNameStr() - Return the name of the specified value,
+ /// *constructing a string* to hold it. Because these are guaranteed to
+ /// construct a string, they are very expensive and should be avoided.
+ std::string getName() const { return getNameStr(); }
+ std::string getNameStr() const;
+
+
+ void setName(const std::string &name);
+ void setName(const char *Name, unsigned NameLen);
+ void setName(const char *Name); // Takes a null-terminated string.
+
+
+ /// takeName - transfer the name from V to this value, setting V's name to
+ /// empty. It is an error to call V->takeName(V).
+ void takeName(Value *V);
+