add Value::getNameStart/getNameLen() accessors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40989 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-08-10 15:34:35 +00:00
parent 57a6f30125
commit 71996e73d8
2 changed files with 30 additions and 1 deletions

View File

@ -88,9 +88,23 @@ public:
// All values can potentially be named... // All values can potentially be named...
inline bool hasName() const { return Name != 0; } inline bool hasName() const { return Name != 0; }
ValueName *getValueName() const { return Name; }
/// getNameStart - Return a pointer to a null terminated string for this name.
/// Note that names can have null characters within the string as well as at
/// their end. This always returns a non-null pointer.
const char *getNameStart() const;
/// 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 getName() const { return getNameStr(); }
std::string getNameStr() const; std::string getNameStr() const;
ValueName *getValueName() const { return Name; }
void setName(const std::string &name); void setName(const std::string &name);
void setName(const char *Name, unsigned NameLen); void setName(const char *Name, unsigned NameLen);

View File

@ -117,6 +117,21 @@ static bool getSymTab(Value *V, ValueSymbolTable *&ST) {
return false; return false;
} }
/// getNameStart - Return a pointer to a null terminated string for this name.
/// Note that names can have null characters within the string as well as at
/// their end. This always returns a non-null pointer.
const char *Value::getNameStart() const {
if (Name == 0) return "";
return Name->getKeyData();
}
/// getNameLen - Return the length of the string, correctly handling nul
/// characters embedded into them.
unsigned Value::getNameLen() const {
return Name->getKeyLength();
}
std::string Value::getNameStr() const { std::string Value::getNameStr() const {
if (Name == 0) return ""; if (Name == 0) return "";
return std::string(Name->getKeyData(), return std::string(Name->getKeyData(),