mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-29 10:25:12 +00:00
Revert 85678/85680. The decision is to stay with the current form of
indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it for simplicity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85699 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -63,13 +63,15 @@ BasicBlock::~BasicBlock() {
|
||||
// hanging off the block, or an undefined use of the block (source code
|
||||
// expecting the address of a label to keep the block alive even though there
|
||||
// is no indirect branch). Handle these cases by zapping the BlockAddress
|
||||
// nodes, replacing them with BlockAddress(F, NULL). There are no other
|
||||
// possible uses at this point.
|
||||
// nodes. There are no other possible uses at this point.
|
||||
if (hasAddressTaken()) {
|
||||
assert(!use_empty() && "There should be at least one blockaddress!");
|
||||
Constant *Replacement =
|
||||
ConstantInt::get(llvm::Type::getInt32Ty(getContext()), 1);
|
||||
while (!use_empty()) {
|
||||
BlockAddress *BA = cast<BlockAddress>(use_back());
|
||||
BA->replaceAllUsesWith(BlockAddress::get(BA->getFunction(), 0));
|
||||
BA->replaceAllUsesWith(ConstantExpr::getIntToPtr(Replacement,
|
||||
BA->getType()));
|
||||
BA->destroyConstant();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user