diff options
author | Victor Hernandez <vhernandez@apple.com> | 2010-01-10 07:14:18 +0000 |
---|---|---|
committer | Victor Hernandez <vhernandez@apple.com> | 2010-01-10 07:14:18 +0000 |
commit | b8fd152d9400a7a6573e04e4b38e7d458a7d2253 (patch) | |
tree | a337f26c23bf517779de8e88b6ae269319808cda /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | d8509424a404906a39e6ba7ba17eb58e22ff191d (diff) | |
download | bcm5719-llvm-b8fd152d9400a7a6573e04e4b38e7d458a7d2253.tar.gz bcm5719-llvm-b8fd152d9400a7a6573e04e4b38e7d458a7d2253.zip |
Compute isFunctionLocal in MDNode ctor or via argument in new function getWhenValsUnresolved().
Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue().
llvm-svn: 93108
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 87c4fd77f36..a417c684dec 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -766,6 +766,7 @@ bool BitcodeReader::ParseMetadata() { continue; } + bool IsFunctionLocal = false; // Read a record. Record.clear(); switch (Stream.ReadRecord(Code, Record)) { @@ -804,6 +805,9 @@ bool BitcodeReader::ParseMetadata() { MDValueList.AssignValue(V, NextValueNo++); break; } + case bitc::METADATA_FN_NODE: + IsFunctionLocal = true; + // fall-through case bitc::METADATA_NODE: { if (Record.empty() || Record.size() % 2 == 1) return Error("Invalid METADATA_NODE record"); @@ -819,7 +823,9 @@ bool BitcodeReader::ParseMetadata() { else Elts.push_back(NULL); } - Value *V = MDNode::get(Context, &Elts[0], Elts.size()); + Value *V = MDNode::getWhenValsUnresolved(Context, &Elts[0], Elts.size(), + IsFunctionLocal); + IsFunctionLocal = false; MDValueList.AssignValue(V, NextValueNo++); break; } |