1//===--- Utils.h - Misc utilities for the front-end -------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This header contains miscellaneous utilities for various front-end actions 10// which were split from Frontend to minimise Frontend's dependencies. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_CLANG_FRONTENDTOOL_UTILS_H 15#define LLVM_CLANG_FRONTENDTOOL_UTILS_H 16 17#include <memory> 18 19namespace clang { 20 21class CompilerInstance; 22class FrontendAction; 23 24/// Construct the FrontendAction of a compiler invocation based on the 25/// options specified for the compiler invocation. 26/// 27/// \return - The created FrontendAction object 28std::unique_ptr<FrontendAction> CreateFrontendAction(CompilerInstance &CI); 29 30/// ExecuteCompilerInvocation - Execute the given actions described by the 31/// compiler invocation object in the given compiler instance. 32/// 33/// \return - True on success. 34bool ExecuteCompilerInvocation(CompilerInstance *Clang); 35 36} // end namespace clang 37 38#endif 39