1//===--- DriverOptions.cpp - Driver Options Table -------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "clang/Driver/Options.h"
11#include "llvm/ADT/STLExtras.h"
12#include "llvm/Option/OptTable.h"
13#include "llvm/Option/Option.h"
14
15using namespace clang::driver;
16using namespace clang::driver::options;
17using namespace llvm::opt;
18
19#define PREFIX(NAME, VALUE) static const char *const NAME[] = VALUE;
20#include "clang/Driver/Options.inc"
21#undef PREFIX
22
23static const OptTable::Info InfoTable[] = {
24#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
25               HELPTEXT, METAVAR)   \
26  { PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, \
27    FLAGS, OPT_##GROUP, OPT_##ALIAS, ALIASARGS },
28#include "clang/Driver/Options.inc"
29#undef OPTION
30};
31
32namespace {
33
34class DriverOptTable : public OptTable {
35public:
36  DriverOptTable()
37    : OptTable(InfoTable, llvm::array_lengthof(InfoTable)) {}
38};
39
40}
41
42OptTable *clang::driver::createDriverOptTable() {
43  return new DriverOptTable();
44}
45