diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-14 17:53:23 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-14 17:53:23 +0000 |
commit | 3b9d6216a41cfd43759e787db26d797e1f0ba0a8 (patch) | |
tree | 70ab8ae438a0996ff774bc8fd0eafc4c5b6d69e8 /include/llvm/CodeGen/MachineModuleInfo.h | |
parent | c441e97220eb8f3fc062d8bdf04d261165428673 (diff) |
fix AsmPrinter::GetBlockAddressSymbol to always return a unique
label instead of trying to form one based on the BB name (which
causes collisions if the name is empty). This fixes PR6608
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineModuleInfo.h')
-rw-r--r-- | include/llvm/CodeGen/MachineModuleInfo.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h index 30f99db85b..2b813cc9d3 100644 --- a/include/llvm/CodeGen/MachineModuleInfo.h +++ b/include/llvm/CodeGen/MachineModuleInfo.h @@ -139,6 +139,11 @@ class MachineModuleInfo : public ImmutablePass { /// llvm.compiler.used. SmallPtrSet<const Function *, 32> UsedFunctions; + + /// 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; + bool CallsEHReturn; bool CallsUnwindInit; @@ -203,6 +208,11 @@ public: /// handling comsumers. std::vector<MachineMove> &getFrameMoves() { return FrameMoves; } + /// getAddrLabelSymbol - Return the symbol to be used for the specified basic + /// block when its address is taken. This cannot be its normal LBB label + /// because the block may be accessed outside its containing function. + MCSymbol *getAddrLabelSymbol(const BasicBlock *BB); + //===- EH ---------------------------------------------------------------===// /// getOrCreateLandingPadInfo - Find or create an LandingPadInfo for the |