1//===--- Options.h - Option info & table ------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_DRIVER_OPTIONS_H
10#define LLVM_CLANG_DRIVER_OPTIONS_H
11
12namespace llvm {
13namespace opt {
14class OptTable;
15}
16}
17
18namespace clang {
19namespace driver {
20
21namespace options {
22/// Flags specifically for clang options. Must not overlap with
23/// llvm::opt::DriverFlag.
24enum ClangFlags {
25 NoXarchOption = (1 << 4),
26 LinkerInput = (1 << 5),
27 NoArgumentUnused = (1 << 6),
28 Unsupported = (1 << 7),
29 CoreOption = (1 << 8),
30 CLOption = (1 << 9),
31 CC1Option = (1 << 10),
32 CC1AsOption = (1 << 11),
33 NoDriverOption = (1 << 12),
34 LinkOption = (1 << 13),
35 FlangOption = (1 << 14),
36 FC1Option = (1 << 15),
37 FlangOnlyOption = (1 << 16),
38 DXCOption = (1 << 17),
39 CLDXCOption = (1 << 18),
40 Ignored = (1 << 19),
41 TargetSpecific = (1 << 20),
42};
43
44enum ID {
45 OPT_INVALID = 0, // This is not an option ID.
46#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \
47 HELPTEXT, METAVAR, VALUES) \
48 OPT_##ID,
49#include "clang/Driver/Options.inc"
50 LastOption
51#undef OPTION
52 };
53}
54
55const llvm::opt::OptTable &getDriverOptTable();
56}
57}
58
59#endif
60