X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FBitcode%2FWriter%2FValueEnumerator.cpp;h=38784ec4a0fa81c44428814770605b1ea6f91cf3;hb=104cf9e02b0ed94d4173869a598af6c6972a8660;hp=4a6eea494306faea3059b9dc8834605a8941efb4;hpb=0aaf4e91c2961585c160af0cc87f040301aafbd2;p=oota-llvm.git diff --git a/lib/Bitcode/Writer/ValueEnumerator.cpp b/lib/Bitcode/Writer/ValueEnumerator.cpp index 4a6eea49430..38784ec4a0f 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -204,21 +204,23 @@ void ValueEnumerator::EnumerateValue(const Value *V) { Values.push_back(std::make_pair(V, 1U)); ValueMap[V] = Values.size(); return; - } else if (const MDNode *N = dyn_cast(C)) { - for (MDNode::const_elem_iterator I = N->elem_begin(), E = N->elem_end(); - I != E; ++I) { - if (*I) - EnumerateValue(*I); - else - EnumerateType(Type::VoidTy); - } + } + } - Values.push_back(std::make_pair(V, 1U)); - ValueMap[V] = Values.size(); - return; + if (const MDNode *N = dyn_cast(V)) { + Values.push_back(std::make_pair(V, 1U)); + ValueMap[V] = Values.size(); + ValueID = Values.size(); + for (MDNode::const_elem_iterator I = N->elem_begin(), E = N->elem_end(); + I != E; ++I) { + if (*I) + EnumerateValue(*I); + else + EnumerateType(Type::VoidTy); } + return; } - + // Add the value. Values.push_back(std::make_pair(V, 1U)); ValueID = Values.size(); @@ -265,7 +267,7 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) { EnumerateOperandType(Elem); } } - } else if (isa(V)) + } else if (isa(V) || isa(V)) EnumerateValue(V); }