bitcode writer support for blockaddress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85376 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-10-28 05:24:40 +00:00
parent 0eeb913aa1
commit 837e04a8bf
4 changed files with 54 additions and 9 deletions

View File

@@ -853,6 +853,13 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
Record.push_back(CE->getPredicate());
break;
}
} else if (const BlockAddress *BA = dyn_cast<BlockAddress>(C)) {
assert(BA->getFunction() == BA->getBasicBlock()->getParent() &&
"Malformed blockaddress");
Code = bitc::CST_CODE_BLOCKADDRESS;
Record.push_back(VE.getTypeID(BA->getFunction()->getType()));
Record.push_back(VE.getValueID(BA->getFunction()));
Record.push_back(VE.getGlobalBasicBlockID(BA->getBasicBlock()));
} else {
llvm_unreachable("Unknown constant!");
}