Index: lib/CodeGen/CFIInstrInserter.cpp =================================================================== --- lib/CodeGen/CFIInstrInserter.cpp +++ lib/CodeGen/CFIInstrInserter.cpp @@ -18,6 +18,7 @@ /// blocks in a function. //===----------------------------------------------------------------------===// +#include "llvm/ADT/DepthFirstIterator.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineModuleInfo.h" @@ -291,9 +292,13 @@ unsigned CFIInstrInserter::verify(MachineFunction &MF) { unsigned ErrorNum = 0; - for (MachineBasicBlock &CurrMBB : MF) { - const MBBCFAInfo &CurrMBBInfo = MBBVector[CurrMBB.getNumber()]; - for (MachineBasicBlock *Succ : CurrMBB.successors()) { + df_iterator_default_set Reachable; + + for (auto DFI = df_ext_begin(&MF, Reachable), + DFE = df_ext_end(&MF, Reachable); + DFI != DFE; ++DFI) { + const MBBCFAInfo &CurrMBBInfo = MBBVector[DFI->getNumber()]; + for (MachineBasicBlock *Succ : DFI->successors()) { const MBBCFAInfo &SuccMBBInfo = MBBVector[Succ->getNumber()]; // Check that incoming offset and register values of successors match the // outgoing offset and register values of CurrMBB