Fix the case when a reference to an address taken BB is emitted in one

function, then the BB is RAUW'd before the definition is emitted.  There
are still two cases not being handled, but this should improve us back to
the situation before I touched anything.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-03-15 19:09:43 +00:00
parent ca70495797
commit 0220ba7995
3 changed files with 138 additions and 7 deletions

View File

@@ -88,6 +88,8 @@ struct LandingPadInfo {
: LandingPadBlock(MBB), LandingPadLabel(0), Personality(0) {}
};
class MMIAddrLabelMap;
//===----------------------------------------------------------------------===//
/// MachineModuleInfo - This class contains meta information specific to a
/// module. Queries can be made by different debugging and exception handling
@@ -142,7 +144,7 @@ class MachineModuleInfo : public ImmutablePass {
/// AddrLabelSymbols - This map keeps track of which symbol is being used for
/// the specified basic block's address of label.
DenseMap<AssertingVH<BasicBlock>, MCSymbol*> AddrLabelSymbols;
MMIAddrLabelMap *AddrLabelSymbols;
bool CallsEHReturn;
bool CallsUnwindInit;