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 19 namespace clang { 20 21 class CompilerInstance; 22 class 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 28 std::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. 34 bool ExecuteCompilerInvocation(CompilerInstance *Clang); 35 36 } // end namespace clang 37 38 #endif 39