summaryrefslogtreecommitdiffstats
path: root/clang/lib/ARCMigrate/ARCMTActions.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-07-19 17:20:03 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-07-19 17:20:03 +0000
commitd571363e459f84f7cee91c1c6a20ceb3692c9824 (patch)
tree8aa6a5a5674ad1faad60f61f6014b02153b0ac1a /clang/lib/ARCMigrate/ARCMTActions.cpp
parent08636b46333e088436476ab44764ba731f697a49 (diff)
downloadbcm5719-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.cpp18
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.
}
OpenPOWER on IntegriCloud