コード例 #1
0
ファイル: CoreEngine.cpp プロジェクト: Teemperor/clang
static std::unique_ptr<WorkList> generateWorkList(AnalyzerOptions &Opts) {
  switch (Opts.getExplorationStrategy()) {
    case AnalyzerOptions::ExplorationStrategyKind::DFS:
      return WorkList::makeDFS();
    case AnalyzerOptions::ExplorationStrategyKind::BFS:
      return WorkList::makeBFS();
    case AnalyzerOptions::ExplorationStrategyKind::BFSBlockDFSContents:
      return WorkList::makeBFSBlockDFSContents();
    case AnalyzerOptions::ExplorationStrategyKind::UnexploredFirst:
      return WorkList::makeUnexploredFirst();
    case AnalyzerOptions::ExplorationStrategyKind::UnexploredFirstQueue:
      return WorkList::makeUnexploredFirstPriorityQueue();
    default:
      llvm_unreachable("Unexpected case");
  }
}