diff options
Diffstat (limited to 'Driver/clang.cpp')
-rw-r--r-- | Driver/clang.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp index 7c25a0a9b0..7301354c17 100644 --- a/Driver/clang.cpp +++ b/Driver/clang.cpp @@ -855,17 +855,21 @@ static void ProcessInputFile(Preprocessor &PP, unsigned MainFileID, break; } case ParseCFGDump: - DumpCFGs(PP, MainFileID, Stats); - break; - case ParseCFGView: - DumpCFGs(PP, MainFileID, Stats, true); + case ParseCFGView: { + std::auto_ptr<ASTConsumer> C(CreateCFGDumper(ProgAction == ParseCFGView)); + ParseAST(PP, MainFileID, *C.get(), Stats); break; - case AnalysisLiveVariables: - AnalyzeLiveVariables(PP, MainFileID); + } + case AnalysisLiveVariables: { + std::auto_ptr<ASTConsumer> C(CreateLiveVarAnalyzer()); + ParseAST(PP, MainFileID, *C.get(), Stats); break; - case WarnDeadStores: - RunDeadStoresCheck(PP, MainFileID, Stats); + } + case WarnDeadStores: { + std::auto_ptr<ASTConsumer> C(CreateDeadStoreChecker(PP.getDiagnostics())); + ParseAST(PP, MainFileID, *C.get(), Stats); break; + } case EmitLLVM: EmitLLVMFromASTs(PP, MainFileID, Stats); break; |