Path: blob/main/contrib/llvm-project/clang/lib/ARCMigrate/ARCMTActions.cpp
35236 views
//===--- ARCMTActions.cpp - ARC Migrate Tool Frontend Actions ---*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "clang/ARCMigrate/ARCMTActions.h"9#include "clang/ARCMigrate/ARCMT.h"10#include "clang/Frontend/CompilerInstance.h"1112using namespace clang;13using namespace arcmt;1415bool CheckAction::BeginInvocation(CompilerInstance &CI) {16if (arcmt::checkForManualIssues(CI.getInvocation(), getCurrentInput(),17CI.getPCHContainerOperations(),18CI.getDiagnostics().getClient()))19return false; // errors, stop the action.2021// We only want to see warnings reported from arcmt::checkForManualIssues.22CI.getDiagnostics().setIgnoreAllWarnings(true);23return true;24}2526CheckAction::CheckAction(std::unique_ptr<FrontendAction> WrappedAction)27: WrapperFrontendAction(std::move(WrappedAction)) {}2829bool ModifyAction::BeginInvocation(CompilerInstance &CI) {30return !arcmt::applyTransformations(CI.getInvocation(), getCurrentInput(),31CI.getPCHContainerOperations(),32CI.getDiagnostics().getClient());33}3435ModifyAction::ModifyAction(std::unique_ptr<FrontendAction> WrappedAction)36: WrapperFrontendAction(std::move(WrappedAction)) {}3738bool MigrateAction::BeginInvocation(CompilerInstance &CI) {39if (arcmt::migrateWithTemporaryFiles(40CI.getInvocation(), getCurrentInput(), CI.getPCHContainerOperations(),41CI.getDiagnostics().getClient(), MigrateDir, EmitPremigrationARCErrors,42PlistOut))43return false; // errors, stop the action.4445// We only want to see diagnostics emitted by migrateWithTemporaryFiles.46CI.getDiagnostics().setIgnoreAllWarnings(true);47return true;48}4950MigrateAction::MigrateAction(std::unique_ptr<FrontendAction> WrappedAction,51StringRef migrateDir,52StringRef plistOut,53bool emitPremigrationARCErrors)54: WrapperFrontendAction(std::move(WrappedAction)), MigrateDir(migrateDir),55PlistOut(plistOut), EmitPremigrationARCErrors(emitPremigrationARCErrors) {56if (MigrateDir.empty())57MigrateDir = "."; // user current directory if none is given.58}596061