diff --git a/llvm/include/llvm/TableGen/Main.h b/llvm/include/llvm/TableGen/Main.h index bafce3a463acc..daede9f5a46f0 100644 --- a/llvm/include/llvm/TableGen/Main.h +++ b/llvm/include/llvm/TableGen/Main.h @@ -14,7 +14,6 @@ #define LLVM_TABLEGEN_MAIN_H #include "llvm/Support/CommandLine.h" -#include #include namespace llvm { @@ -30,18 +29,17 @@ struct TableGenOutputFiles { }; /// Returns true on error, false otherwise. -using TableGenMainFn = bool(raw_ostream &OS, const RecordKeeper &Records); +using TableGenMainFn = + function_ref; /// Perform the action using Records, and store output in OutFiles. /// Returns true on error, false otherwise. -using MultiFileTableGenMainFn = bool(TableGenOutputFiles &OutFiles, - const RecordKeeper &Records); +using MultiFileTableGenMainFn = function_ref; -int TableGenMain(const char *argv0, - std::function MainFn = nullptr); +int TableGenMain(const char *argv0, TableGenMainFn MainFn = nullptr); -int TableGenMain(const char *argv0, - std::function MainFn = nullptr); +int TableGenMain(const char *argv0, MultiFileTableGenMainFn MainFn = nullptr); /// Controls emitting large character arrays as strings or character arrays. /// Typically set to false when building with MSVC. diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp index 3330b70cdc2e1..939e9c6bf5d2f 100644 --- a/llvm/lib/TableGen/Main.cpp +++ b/llvm/lib/TableGen/Main.cpp @@ -127,8 +127,7 @@ static int WriteOutput(const TGParser &Parser, const char *argv0, return 0; } -int llvm::TableGenMain(const char *argv0, - std::function MainFn) { +int llvm::TableGenMain(const char *argv0, MultiFileTableGenMainFn MainFn) { RecordKeeper Records; TGTimer &Timer = Records.getTimer(); @@ -209,8 +208,7 @@ int llvm::TableGenMain(const char *argv0, return 0; } -int llvm::TableGenMain(const char *argv0, - std::function MainFn) { +int llvm::TableGenMain(const char *argv0, TableGenMainFn MainFn) { return TableGenMain(argv0, [&MainFn](TableGenOutputFiles &OutFiles, const RecordKeeper &Records) { std::string S; diff --git a/llvm/utils/TableGen/Basic/TableGen.cpp b/llvm/utils/TableGen/Basic/TableGen.cpp index b79ae93dab4f7..a655cbbc16096 100644 --- a/llvm/utils/TableGen/Basic/TableGen.cpp +++ b/llvm/utils/TableGen/Basic/TableGen.cpp @@ -73,7 +73,7 @@ int tblgen_main(int argc, char **argv) { InitLLVM X(argc, argv); cl::ParseCommandLineOptions(argc, argv); - std::function MainFn = nullptr; + MultiFileTableGenMainFn MainFn = nullptr; return TableGenMain(argv[0], MainFn); }