summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-03-24 00:53:27 +0000
committerChris Lattner <sabre@nondot.org>2010-03-24 00:53:27 +0000
commit918a2c866112c30816a377836e466e4873871980 (patch)
tree606f0bad74467740e230be4113f6a16ba1cbf961
parentf9c8bec6c5ccce7152076aab6b0d2ad83d65eec1 (diff)
downloadbcm5719-llvm-918a2c866112c30816a377836e466e4873871980.tar.gz
bcm5719-llvm-918a2c866112c30816a377836e466e4873871980.zip
Add a method to get a StringMapEntry from a pointer to the string
data it contains (similar to GetStringMapEntryFromValue). Patch by Greg Clayton! llvm-svn: 99371
-rw-r--r--llvm/include/llvm/ADT/StringMap.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/StringMap.h b/llvm/include/llvm/ADT/StringMap.h
index 86e8546adca..482193859b6 100644
--- a/llvm/include/llvm/ADT/StringMap.h
+++ b/llvm/include/llvm/ADT/StringMap.h
@@ -216,6 +216,14 @@ public:
static const StringMapEntry &GetStringMapEntryFromValue(const ValueTy &V) {
return GetStringMapEntryFromValue(const_cast<ValueTy&>(V));
}
+
+ /// GetStringMapEntryFromKeyData - Given key data that is known to be embedded
+ /// into a StringMapEntry, return the StringMapEntry itself.
+ static StringMapEntry &GetStringMapEntryFromKeyData(const char *KeyData) {
+ char *Ptr = const_cast<char*>(KeyData) - sizeof(StringMapEntry<ValueTy>);
+ return *reinterpret_cast<StringMapEntry*>(Ptr);
+ }
+
/// Destroy - Destroy this StringMapEntry, releasing memory back to the
/// specified allocator.
OpenPOWER on IntegriCloud