aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode/Writer/ValueEnumerator.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-07-29 22:34:41 +0000
committerDevang Patel <dpatel@apple.com>2009-07-29 22:34:41 +0000
commitaa993142518648c1ffa61e7f52ff6d3a95d413fb (patch)
tree66b8db375a3310bedc27056dba65816ed7d9ac26 /lib/Bitcode/Writer/ValueEnumerator.cpp
parentdebcb01b0f0a15f568ca69e8f288fade4bfc7297 (diff)
Read and write NamedMDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bitcode/Writer/ValueEnumerator.cpp')
-rw-r--r--lib/Bitcode/Writer/ValueEnumerator.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Bitcode/Writer/ValueEnumerator.cpp b/lib/Bitcode/Writer/ValueEnumerator.cpp
index 302791a420..a980e90dcf 100644
--- a/lib/Bitcode/Writer/ValueEnumerator.cpp
+++ b/lib/Bitcode/Writer/ValueEnumerator.cpp
@@ -221,6 +221,18 @@ void ValueEnumerator::EnumerateValue(const Value *V) {
return;
}
+ if (const NamedMDNode *N = dyn_cast<NamedMDNode>(V)) {
+ Values.push_back(std::make_pair(V, 1U));
+ ValueMap[V] = Values.size();
+ ValueID = Values.size();
+ for(NamedMDNode::const_elem_iterator I = N->elem_begin(),
+ E = N->elem_end(); I != E; ++I) {
+ MetadataBase *M = *I;
+ EnumerateValue(M);
+ }
+ return;
+ }
+
// Add the value.
Values.push_back(std::make_pair(V, 1U));
ValueID = Values.size();