diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp')
-rw-r--r-- | contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp | 87 |
1 files changed, 25 insertions, 62 deletions
diff --git a/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp b/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp index 3e429be..8a13b2e 100644 --- a/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp +++ b/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp @@ -103,8 +103,8 @@ public: : Diags(diags), DiagClient(client), CapturedDiags(capturedDiags), HasBegunSourceFile(false) { } - virtual void BeginSourceFile(const LangOptions &Opts, - const Preprocessor *PP) { + void BeginSourceFile(const LangOptions &Opts, + const Preprocessor *PP) override { // Pass BeginSourceFile message onto DiagClient on first call. // The corresponding EndSourceFile call will be made from an // explicit call to FinishCapture. @@ -128,8 +128,8 @@ public: assert(!HasBegunSourceFile && "FinishCapture not called!"); } - virtual void HandleDiagnostic(DiagnosticsEngine::Level level, - const Diagnostic &Info) { + void HandleDiagnostic(DiagnosticsEngine::Level level, + const Diagnostic &Info) override { if (DiagnosticIDs::isARCDiagnostic(Info.getID()) || level >= DiagnosticsEngine::Error || level == DiagnosticsEngine::Note) { if (Info.getLocation().isValid()) @@ -167,7 +167,7 @@ static bool HasARCRuntime(CompilerInvocation &origCI) { static CompilerInvocation * createInvocationForMigration(CompilerInvocation &origCI) { - OwningPtr<CompilerInvocation> CInvok; + std::unique_ptr<CompilerInvocation> CInvok; CInvok.reset(new CompilerInvocation(origCI)); PreprocessorOptions &PPOpts = CInvok->getPreprocessorOpts(); if (!PPOpts.ImplicitPCHInclude.empty()) { @@ -204,11 +204,11 @@ createInvocationForMigration(CompilerInvocation &origCI) { WarnOpts.push_back(*I); } WarnOpts.push_back("error=arc-unsafe-retained-assign"); - CInvok->getDiagnosticOpts().Warnings = llvm_move(WarnOpts); + CInvok->getDiagnosticOpts().Warnings = std::move(WarnOpts); CInvok->getLangOpts()->ObjCARCWeak = HasARCRuntime(origCI); - return CInvok.take(); + return CInvok.release(); } static void emitPremigrationErrors(const CapturedDiagList &arcDiags, @@ -246,7 +246,7 @@ bool arcmt::checkForManualIssues(CompilerInvocation &origCI, NoFinalizeRemoval); assert(!transforms.empty()); - OwningPtr<CompilerInvocation> CInvok; + std::unique_ptr<CompilerInvocation> CInvok; CInvok.reset(createInvocationForMigration(origCI)); CInvok->getFrontendOpts().Inputs.clear(); CInvok->getFrontendOpts().Inputs.push_back(Input); @@ -263,8 +263,8 @@ bool arcmt::checkForManualIssues(CompilerInvocation &origCI, CaptureDiagnosticConsumer errRec(*Diags, *DiagClient, capturedDiags); Diags->setClient(&errRec, /*ShouldOwnClient=*/false); - OwningPtr<ASTUnit> Unit( - ASTUnit::LoadFromCompilerInvocationAction(CInvok.take(), Diags)); + std::unique_ptr<ASTUnit> Unit( + ASTUnit::LoadFromCompilerInvocationAction(CInvok.release(), Diags)); if (!Unit) { errRec.FinishCapture(); return true; @@ -310,8 +310,10 @@ bool arcmt::checkForManualIssues(CompilerInvocation &origCI, TransformActions testAct(*Diags, capturedDiags, Ctx, Unit->getPreprocessor()); MigrationPass pass(Ctx, OrigGCMode, Unit->getSema(), testAct, capturedDiags, ARCMTMacroLocs); - pass.setNSAllocReallocError(NoNSAllocReallocError); pass.setNoFinalizeRemoval(NoFinalizeRemoval); + if (!NoNSAllocReallocError) + Diags->setSeverity(diag::warn_arcmt_nsalloc_realloc, diag::Severity::Error, + SourceLocation()); for (unsigned i=0, e = transforms.size(); i != e; ++i) transforms[i](pass); @@ -416,44 +418,6 @@ bool arcmt::getFileRemappings(std::vector<std::pair<std::string,std::string> > & return false; } -bool arcmt::getFileRemappingsFromFileList( - std::vector<std::pair<std::string,std::string> > &remap, - ArrayRef<StringRef> remapFiles, - DiagnosticConsumer *DiagClient) { - bool hasErrorOccurred = false; - llvm::StringMap<bool> Uniquer; - - IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs()); - IntrusiveRefCntPtr<DiagnosticsEngine> Diags( - new DiagnosticsEngine(DiagID, new DiagnosticOptions, - DiagClient, /*ShouldOwnClient=*/false)); - - for (ArrayRef<StringRef>::iterator - I = remapFiles.begin(), E = remapFiles.end(); I != E; ++I) { - StringRef file = *I; - - FileRemapper remapper; - bool err = remapper.initFromFile(file, *Diags, - /*ignoreIfFilesChanged=*/true); - hasErrorOccurred = hasErrorOccurred || err; - if (err) - continue; - - PreprocessorOptions PPOpts; - remapper.applyMappings(PPOpts); - for (PreprocessorOptions::remapped_file_iterator - RI = PPOpts.remapped_file_begin(), RE = PPOpts.remapped_file_end(); - RI != RE; ++RI) { - bool &inserted = Uniquer[RI->first]; - if (inserted) - continue; - inserted = true; - remap.push_back(*RI); - } - } - - return hasErrorOccurred; -} //===----------------------------------------------------------------------===// // CollectTransformActions. @@ -468,8 +432,8 @@ public: ARCMTMacroTrackerPPCallbacks(std::vector<SourceLocation> &ARCMTMacroLocs) : ARCMTMacroLocs(ARCMTMacroLocs) { } - virtual void MacroExpands(const Token &MacroNameTok, const MacroDirective *MD, - SourceRange Range, const MacroArgs *Args) { + void MacroExpands(const Token &MacroNameTok, const MacroDirective *MD, + SourceRange Range, const MacroArgs *Args) override { if (MacroNameTok.getIdentifierInfo()->getName() == getARCMTMacroName()) ARCMTMacroLocs.push_back(MacroNameTok.getLocation()); } @@ -482,8 +446,8 @@ public: ARCMTMacroTrackerAction(std::vector<SourceLocation> &ARCMTMacroLocs) : ARCMTMacroLocs(ARCMTMacroLocs) { } - virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) { + ASTConsumer *CreateASTConsumer(CompilerInstance &CI, + StringRef InFile) override { CI.getPreprocessor().addPPCallbacks( new ARCMTMacroTrackerPPCallbacks(ARCMTMacroLocs)); return new ASTConsumer(); @@ -506,14 +470,14 @@ public: Listener->finish(); } - virtual void insert(SourceLocation loc, StringRef text) { + void insert(SourceLocation loc, StringRef text) override { bool err = rewriter.InsertText(loc, text, /*InsertAfter=*/true, /*indentNewLines=*/true); if (!err && Listener) Listener->insert(loc, text); } - virtual void remove(CharSourceRange range) { + void remove(CharSourceRange range) override { Rewriter::RewriteOptions removeOpts; removeOpts.IncludeInsertsAtBeginOfRange = false; removeOpts.IncludeInsertsAtEndOfRange = false; @@ -524,8 +488,8 @@ public: Listener->remove(range); } - virtual void increaseIndentation(CharSourceRange range, - SourceLocation parentIndent) { + void increaseIndentation(CharSourceRange range, + SourceLocation parentIndent) override { rewriter.IncreaseIndentation(range, parentIndent); } }; @@ -550,7 +514,7 @@ MigrationProcess::MigrationProcess(const CompilerInvocation &CI, bool MigrationProcess::applyTransform(TransformFn trans, RewriteListener *listener) { - OwningPtr<CompilerInvocation> CInvok; + std::unique_ptr<CompilerInvocation> CInvok; CInvok.reset(createInvocationForMigration(OrigCI)); CInvok->getDiagnosticOpts().IgnoreWarnings = true; @@ -569,12 +533,11 @@ bool MigrationProcess::applyTransform(TransformFn trans, CaptureDiagnosticConsumer errRec(*Diags, *DiagClient, capturedDiags); Diags->setClient(&errRec, /*ShouldOwnClient=*/false); - OwningPtr<ARCMTMacroTrackerAction> ASTAction; + std::unique_ptr<ARCMTMacroTrackerAction> ASTAction; ASTAction.reset(new ARCMTMacroTrackerAction(ARCMTMacroLocs)); - OwningPtr<ASTUnit> Unit( - ASTUnit::LoadFromCompilerInvocationAction(CInvok.take(), Diags, - ASTAction.get())); + std::unique_ptr<ASTUnit> Unit(ASTUnit::LoadFromCompilerInvocationAction( + CInvok.release(), Diags, ASTAction.get())); if (!Unit) { errRec.FinishCapture(); return true; |