diff options
| author | Reid Kleckner <rnk@google.com> | 2015-08-31 20:02:16 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2015-08-31 20:02:16 +0000 |
| commit | e00faf8ce17a6ec31117a1dedb8ae506883d8232 (patch) | |
| tree | 2c49aafbec193b096d78d7350aefa447341b5b4a /llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp | |
| parent | 5f912d3797bc253a86712e2677cd3d983d81de55 (diff) | |
| download | bcm5719-llvm-e00faf8ce17a6ec31117a1dedb8ae506883d8232.tar.gz bcm5719-llvm-e00faf8ce17a6ec31117a1dedb8ae506883d8232.zip | |
[EH] Handle non-Function personalities like unknown personalities
Also delete and simplify a lot of MachineModuleInfo code that used to be
needed to handle personalities on landingpads. Now that the personality
is on the LLVM Function, we no longer need to track it this way on MMI.
Certainly it should not live on LandingPadInfo.
llvm-svn: 246478
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp index 282e2ec31a9..6665c16159a 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp @@ -78,11 +78,10 @@ void DwarfCFIException::endModule() { return; // Emit references to all used personality functions - const std::vector<const Function*> &Personalities = MMI->getPersonalities(); - for (size_t i = 0, e = Personalities.size(); i != e; ++i) { - if (!Personalities[i]) + for (const Function *Personality : MMI->getPersonalities()) { + if (!Personality) continue; - MCSymbol *Sym = Asm->getSymbol(Personalities[i]); + MCSymbol *Sym = Asm->getSymbol(Personality); TLOF.emitPersonalityValue(*Asm->OutStreamer, Asm->getDataLayout(), Sym); } } @@ -108,7 +107,6 @@ void DwarfCFIException::beginFunction(const MachineFunction *MF) { const Function *Per = nullptr; if (F->hasPersonalityFn()) Per = dyn_cast<Function>(F->getPersonalityFn()->stripPointerCasts()); - assert(!MMI->getPersonality() || Per == MMI->getPersonality()); // Emit a personality function even when there are no landing pads bool forceEmitPersonality = |

