diff options
Diffstat (limited to 'llvm/lib/Bitcode/Reader')
| -rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 72785579967..0bacf0fe70e 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -1506,7 +1506,10 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {        SmallVector<Value*, 16> Args;        // Read the fixed params.        for (unsigned i = 0, e = FTy->getNumParams(); i != e; ++i, ++OpNum) { -        Args.push_back(getFnValueByID(Record[OpNum], FTy->getParamType(i))); +        if (FTy->getParamType(i)->getTypeID()==Type::LabelTyID) +          Args.push_back(getBasicBlock(Record[OpNum])); +        else +          Args.push_back(getFnValueByID(Record[OpNum], FTy->getParamType(i)));          if (Args.back() == 0) return Error("Invalid CALL record");        } | 

