27 #ifndef LLVM_CLANG_TOOLING_EXECUTION_H 28 #define LLVM_CLANG_TOOLING_EXECUTION_H 32 #include "llvm/Support/Error.h" 33 #include "llvm/Support/Registry.h" 34 #include "llvm/Support/StringSaver.h" 50 virtual std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
53 llvm::function_ref<
void(StringRef Key, StringRef Value)> Callback) = 0;
63 std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
65 void forEachResult(llvm::function_ref<
void(StringRef Key, StringRef Value)>
69 llvm::BumpPtrAllocator Arena;
70 llvm::UniqueStringSaver Strings;
72 std::vector<std::pair<llvm::StringRef, llvm::StringRef>> KVResults;
85 void reportResult(StringRef Key, StringRef
Value);
116 virtual StringRef getExecutorName()
const = 0;
123 virtual bool isSingleProcess()
const = 0;
132 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action);
134 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action,
153 virtual void mapVirtualFile(StringRef FilePath, StringRef Content) = 0;
181 const char *Overview =
nullptr);
186 llvm::cl::OptionCategory &Category,
187 const char *Overview =
nullptr);
193 #endif // LLVM_CLANG_TOOLING_EXECUTION_H virtual std::string getRevision()
ExecutionContext(ToolResults *Results)
Initializes a context. This does not take ownership of Results.
The context of an execution, including the information about compilation and results.
virtual std::string getCurrentCompilationUnit()
Dataflow Directional Tag Classes.
std::unique_ptr< DiagnosticConsumer > create(StringRef OutputFile, DiagnosticOptions *Diags, bool MergeChildRecords=false)
Returns a DiagnosticConsumer that serializes diagnostics to a bitcode file.
virtual ~ExecutionContext()
virtual std::string getCorpus()