aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Options/DriverOptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Options/DriverOptions.cpp')
-rw-r--r--clang/lib/Options/DriverOptions.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/clang/lib/Options/DriverOptions.cpp b/clang/lib/Options/DriverOptions.cpp
new file mode 100644
index 0000000..d91e929
--- /dev/null
+++ b/clang/lib/Options/DriverOptions.cpp
@@ -0,0 +1,51 @@
+//===--- DriverOptions.cpp - Driver Options Table -------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "clang/Options/Options.h"
+#include "llvm/Option/OptTable.h"
+#include <cassert>
+
+using namespace clang::options;
+using namespace llvm::opt;
+
+#define OPTTABLE_STR_TABLE_CODE
+#include "clang/Options/Options.inc"
+#undef OPTTABLE_STR_TABLE_CODE
+
+#define OPTTABLE_VALUES_CODE
+#include "clang/Options/Options.inc"
+#undef OPTTABLE_VALUES_CODE
+
+#define OPTTABLE_PREFIXES_TABLE_CODE
+#include "clang/Options/Options.inc"
+#undef OPTTABLE_PREFIXES_TABLE_CODE
+
+#define OPTTABLE_PREFIXES_UNION_CODE
+#include "clang/Options/Options.inc"
+#undef OPTTABLE_PREFIXES_UNION_CODE
+
+static constexpr OptTable::Info InfoTable[] = {
+#define OPTION(...) LLVM_CONSTRUCT_OPT_INFO(__VA_ARGS__),
+#include "clang/Options/Options.inc"
+#undef OPTION
+};
+
+namespace {
+
+class DriverOptTable : public PrecomputedOptTable {
+public:
+ DriverOptTable()
+ : PrecomputedOptTable(OptionStrTable, OptionPrefixesTable, InfoTable,
+ OptionPrefixesUnion) {}
+};
+} // anonymous namespace
+
+const llvm::opt::OptTable &clang::getDriverOptTable() {
+ static DriverOptTable Table;
+ return Table;
+}