clang API Documentation
Namespaces | |
namespace | trans |
Classes | |
class | MigrationProcess |
class | CheckAction |
class | ModifyAction |
class | MigrateSourceAction |
class | MigrateAction |
class | ObjCMigrateAction |
Migrates to modern ObjC syntax. More... | |
class | FileRemapper |
class | CapturedDiagList |
class | TransformActions |
class | Transaction |
class | MigrationPass |
Typedefs | |
typedef void(* | TransformFn )(MigrationPass &pass) |
Functions | |
bool | checkForManualIssues (CompilerInvocation &CI, const FrontendInputFile &Input, DiagnosticConsumer *DiagClient, bool emitPremigrationARCErrors=false, StringRef plistOut=StringRef()) |
Creates an AST with the provided CompilerInvocation but with these changes: | |
bool | applyTransformations (CompilerInvocation &origCI, const FrontendInputFile &Input, DiagnosticConsumer *DiagClient) |
Works similar to checkForManualIssues but instead of checking, it applies automatic modifications to source files to conform to ARC. | |
bool | migrateWithTemporaryFiles (CompilerInvocation &origCI, const FrontendInputFile &Input, DiagnosticConsumer *DiagClient, StringRef outputDir, bool emitPremigrationARCErrors, StringRef plistOut) |
Applies automatic modifications and produces temporary files and metadata into the outputDir path. | |
bool | getFileRemappings (std::vector< std::pair< std::string, std::string > > &remap, StringRef outputDir, DiagnosticConsumer *DiagClient) |
Get the set of file remappings from the outputDir path that migrateWithTemporaryFiles produced. | |
bool | getFileRemappingsFromFileList (std::vector< std::pair< std::string, std::string > > &remap, ArrayRef< StringRef > remapFiles, DiagnosticConsumer *DiagClient) |
Get the set of file remappings from a list of files with remapping info. | |
std::vector< TransformFn > | getAllTransformations (LangOptions::GCMode OrigGCMode, bool NoFinalizeRemoval) |
void | writeARCDiagsToPlist (const std::string &outPath, ArrayRef< StoredDiagnostic > diags, SourceManager &SM, const LangOptions &LangOpts) |
static StringRef | getARCMTMacroName () |
typedef void(* clang::arcmt::TransformFn)(MigrationPass &pass) |
bool clang::arcmt::applyTransformations | ( | CompilerInvocation & | origCI, |
const FrontendInputFile & | Input, | ||
DiagnosticConsumer * | DiagClient | ||
) |
Works similar to checkForManualIssues but instead of checking, it applies automatic modifications to source files to conform to ARC.
Definition at line 379 of file ARCMT.cpp.
References applyTransforms().
Referenced by clang::arcmt::ModifyAction::BeginInvocation().
bool clang::arcmt::checkForManualIssues | ( | CompilerInvocation & | CI, |
const FrontendInputFile & | Input, | ||
DiagnosticConsumer * | DiagClient, | ||
bool | emitPremigrationARCErrors = false , |
||
StringRef | plistOut = StringRef() |
||
) |
Creates an AST with the provided CompilerInvocation but with these changes:
-if a PCH/PTH is set, the original header is used instead -Automatic Reference Counting mode is enabled
It then checks the AST and produces errors/warning for ARC migration issues that the user needs to handle manually.
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. |
plistOut | if non-empty, it is the file path to store the plist with the pre-migration ARC diagnostics. |
Definition at line 233 of file ARCMT.cpp.
References clang::arcmt::CapturedDiagList::begin(), clang::DiagnosticConsumer::BeginSourceFile(), createInvocationForMigration(), emitPremigrationErrors(), clang::arcmt::CapturedDiagList::end(), clang::DiagnosticConsumer::EndSourceFile(), clang::diag::Error, getAllTransformations(), clang::CompilerInvocationBase::getDiagnosticOpts(), clang::CompilerInvocationBase::getLangOpts(), clang::ASTContext::getLangOpts(), clang::CompilerInvocation::getMigratorOpts(), clang::ASTContext::getSourceManager(), clang::ASTUnit::LoadFromCompilerInvocationAction(), clang::MigratorOptions::NoFinalizeRemoval, clang::MigratorOptions::NoNSAllocReallocError, clang::arcmt::CapturedDiagList::reportDiagnostics(), clang::arcmt::MigrationPass::setNoFinalizeRemoval(), and writeARCDiagsToPlist().
Referenced by applyTransforms(), and clang::arcmt::CheckAction::BeginInvocation().
std::vector< TransformFn > clang::arcmt::getAllTransformations | ( | LangOptions::GCMode | OrigGCMode, |
bool | NoFinalizeRemoval | ||
) |
Definition at line 591 of file Transforms.cpp.
References clang::LangOptions::GCOnly, GCRewriteFinalize(), independentTransforms(), and clang::arcmt::trans::removeEmptyStatementsAndDeallocFinalize().
Referenced by applyTransforms(), and checkForManualIssues().
static StringRef clang::arcmt::getARCMTMacroName | ( | ) | [inline, static] |
Definition at line 173 of file Internals.h.
Referenced by createInvocationForMigration(), and isEmptyARCMTMacroStatement().
bool clang::arcmt::getFileRemappings | ( | std::vector< std::pair< std::string, std::string > > & | remap, |
StringRef | outputDir, | ||
DiagnosticConsumer * | DiagClient | ||
) |
Get the set of file remappings from the outputDir
path that migrateWithTemporaryFiles produced.
Definition at line 397 of file ARCMT.cpp.
References clang::arcmt::FileRemapper::applyMappings(), clang::arcmt::FileRemapper::initFromDisk(), and clang::PreprocessorOptions::RemappedFiles.
bool clang::arcmt::getFileRemappingsFromFileList | ( | std::vector< std::pair< std::string, std::string > > & | remap, |
ArrayRef< StringRef > | remapFiles, | ||
DiagnosticConsumer * | DiagClient | ||
) |
Get the set of file remappings from a list of files with remapping info.
Definition at line 2206 of file ObjCMT.cpp.
References applyEditsToTemp().
bool clang::arcmt::migrateWithTemporaryFiles | ( | CompilerInvocation & | origCI, |
const FrontendInputFile & | Input, | ||
DiagnosticConsumer * | DiagClient, | ||
StringRef | outputDir, | ||
bool | emitPremigrationARCErrors, | ||
StringRef | plistOut | ||
) |
Applies automatic modifications and produces temporary files and metadata into the outputDir
path.
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. |
plistOut | if non-empty, it is the file path to store the plist with the pre-migration ARC diagnostics. |
Definition at line 386 of file ARCMT.cpp.
References applyTransforms().
Referenced by clang::arcmt::MigrateAction::BeginInvocation().
void clang::arcmt::writeARCDiagsToPlist | ( | const std::string & | outPath, |
ArrayRef< StoredDiagnostic > | diags, | ||
SourceManager & | SM, | ||
const LangOptions & | LangOpts | ||
) |
Definition at line 35 of file PlistReporter.cpp.
References clang::markup::AddFID(), clang::markup::EmitLocation(), clang::markup::EmitPlistHeader(), clang::markup::EmitRange(), clang::markup::EmitString(), clang::DiagnosticIDs::getCategoryNameFromID(), clang::DiagnosticIDs::getCategoryNumberForDiag(), clang::SourceManager::getFileEntryForID(), clang::StoredDiagnostic::getID(), clang::StoredDiagnostic::getLevel(), getLevelName(), clang::StoredDiagnostic::getLocation(), clang::StoredDiagnostic::getMessage(), clang::FileEntry::getName(), clang::diag::Ignored, clang::StoredDiagnostic::range_begin(), and clang::StoredDiagnostic::range_end().
Referenced by checkForManualIssues().