From f675ec6165ab6add5e57cd43a2e9fa1a9bc21d81 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Tue, 21 Mar 2023 12:58:57 +0900 Subject: [PATCH] TableGen: Make 2nd arg `MainFn` of `TableGenMain(argv0, MainFn)` optional. --- llvm/include/llvm/TableGen/Main.h | 5 ++++- llvm/lib/TableGen/Main.cpp | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/llvm/include/llvm/TableGen/Main.h b/llvm/include/llvm/TableGen/Main.h index 4e05da3..4639ec7 100644 --- a/llvm/include/llvm/TableGen/Main.h +++ b/llvm/include/llvm/TableGen/Main.h @@ -13,6 +13,8 @@ #ifndef LLVM_TABLEGEN_MAIN_H #define LLVM_TABLEGEN_MAIN_H +#include + namespace llvm { class raw_ostream; @@ -22,7 +24,8 @@ class RecordKeeper; /// Returns true on error, false otherwise. using TableGenMainFn = bool (raw_ostream &OS, RecordKeeper &Records); -int TableGenMain(const char *argv0, TableGenMainFn *MainFn); +int TableGenMain(const char *argv0, + std::function MainFn = nullptr); } // end namespace llvm diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp index 2f9ac86..ee72b4b 100644 --- a/llvm/lib/TableGen/Main.cpp +++ b/llvm/lib/TableGen/Main.cpp @@ -95,7 +95,8 @@ static int createDependencyFile(const TGParser &Parser, const char *argv0) { return 0; } -int llvm::TableGenMain(const char *argv0, TableGenMainFn *MainFn) { +int llvm::TableGenMain(const char *argv0, + std::function MainFn) { RecordKeeper Records; if (TimePhases) @@ -129,7 +130,11 @@ int llvm::TableGenMain(const char *argv0, TableGenMainFn *MainFn) { Records.startBackendTimer("Backend overall"); std::string OutString; raw_string_ostream Out(OutString); - unsigned status = MainFn(Out, Records); + unsigned status = 0; + if (MainFn) + status = MainFn(Out, Records); + else + return 1; Records.stopBackendTimer(); if (status) return 1; -- 2.7.4