diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-07-19 17:20:03 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-07-19 17:20:03 +0000 |
commit | d571363e459f84f7cee91c1c6a20ceb3692c9824 (patch) | |
tree | 8aa6a5a5674ad1faad60f61f6014b02153b0ac1a /clang/lib/ARCMigrate/ARCMTActions.cpp | |
parent | 08636b46333e088436476ab44764ba731f697a49 (diff) | |
download | bcm5719-llvm-d571363e459f84f7cee91c1c6a20ceb3692c9824.tar.gz bcm5719-llvm-d571363e459f84f7cee91c1c6a20ceb3692c9824.zip |
[arcmt] Add some additional driver flags to optionally emit or save the pre-migration ARC errors.
-arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else
-arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file
rdar://9791454
llvm-svn: 135491
Diffstat (limited to 'clang/lib/ARCMigrate/ARCMTActions.cpp')
-rw-r--r-- | clang/lib/ARCMigrate/ARCMTActions.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/clang/lib/ARCMigrate/ARCMTActions.cpp b/clang/lib/ARCMigrate/ARCMTActions.cpp index 345c7452420..e4761f692b2 100644 --- a/clang/lib/ARCMigrate/ARCMTActions.cpp +++ b/clang/lib/ARCMigrate/ARCMTActions.cpp @@ -38,16 +38,26 @@ ModifyAction::ModifyAction(FrontendAction *WrappedAction) : WrapperFrontendAction(WrappedAction) {} bool MigrateAction::BeginInvocation(CompilerInstance &CI) { - return !arcmt::migrateWithTemporaryFiles(CI.getInvocation(), + if (arcmt::migrateWithTemporaryFiles(CI.getInvocation(), getCurrentFile(), getCurrentFileKind(), CI.getDiagnostics().getClient(), - MigrateDir); + MigrateDir, + EmitPremigrationARCErros, + PlistOut)) + return false; // errors, stop the action. + + // We only want to see diagnostics emitted by migrateWithTemporaryFiles. + CI.getDiagnostics().setIgnoreAllWarnings(true); + return true; } MigrateAction::MigrateAction(FrontendAction *WrappedAction, - llvm::StringRef migrateDir) - : WrapperFrontendAction(WrappedAction), MigrateDir(migrateDir) { + llvm::StringRef migrateDir, + llvm::StringRef plistOut, + bool emitPremigrationARCErrors) + : WrapperFrontendAction(WrappedAction), MigrateDir(migrateDir), + PlistOut(plistOut), EmitPremigrationARCErros(emitPremigrationARCErrors) { if (MigrateDir.empty()) MigrateDir = "."; // user current directory if none is given. } |