summaryrefslogtreecommitdiff
path: root/include/clang/ARCMigrate/ARCMT.h
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
commit7ee2049278b98d42709380054eb83f4952af1200 (patch)
treebb46e6c218a5ea916421f14df4742dda21f213a2 /include/clang/ARCMigrate/ARCMT.h
parentd6dbb8759a05ab32db67f089c1f5d3f53091e9ed (diff)
downloadclang-7ee2049278b98d42709380054eb83f4952af1200.tar.gz
[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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135491 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/ARCMigrate/ARCMT.h')
-rw-r--r--include/clang/ARCMigrate/ARCMT.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/clang/ARCMigrate/ARCMT.h b/include/clang/ARCMigrate/ARCMT.h
index ad5cf4a2c1..147ac2fd85 100644
--- a/include/clang/ARCMigrate/ARCMT.h
+++ b/include/clang/ARCMigrate/ARCMT.h
@@ -28,10 +28,19 @@ namespace arcmt {
/// It then checks the AST and produces errors/warning for ARC migration issues
/// that the user needs to handle manually.
///
+/// \param emitPremigrationARCErrors if true all ARC errors will get emitted
+/// even if the migrator can fix them, but the function will still return false
+/// if all ARC errors can be fixed.
+///
+/// \param plistOut if non-empty, it is the file path to store the plist with
+/// the pre-migration ARC diagnostics.
+///
/// \returns false if no error is produced, true otherwise.
bool checkForManualIssues(CompilerInvocation &CI,
llvm::StringRef Filename, InputKind Kind,
- DiagnosticClient *DiagClient);
+ DiagnosticClient *DiagClient,
+ bool emitPremigrationARCErrors = false,
+ llvm::StringRef plistOut = llvm::StringRef());
/// \brief Works similar to checkForManualIssues but instead of checking, it
/// applies automatic modifications to source files to conform to ARC.
@@ -44,11 +53,20 @@ bool applyTransformations(CompilerInvocation &origCI,
/// \brief Applies automatic modifications and produces temporary files
/// and metadata into the \arg outputDir path.
///
+/// \param emitPremigrationARCErrors if true all ARC errors will get emitted
+/// even if the migrator can fix them, but the function will still return false
+/// if all ARC errors can be fixed.
+///
+/// \param plistOut if non-empty, it is the file path to store the plist with
+/// the pre-migration ARC diagnostics.
+///
/// \returns false if no error is produced, true otherwise.
bool migrateWithTemporaryFiles(CompilerInvocation &origCI,
llvm::StringRef Filename, InputKind Kind,
DiagnosticClient *DiagClient,
- llvm::StringRef outputDir);
+ llvm::StringRef outputDir,
+ bool emitPremigrationARCErrors,
+ llvm::StringRef plistOut);
/// \brief Get the set of file remappings from the \arg outputDir path that
/// migrateWithTemporaryFiles produced.