]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/include/clang/Driver/Options.h
Merge llvm-project main llvmorg-17-init-19304-gd0b54bb50e51
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / include / clang / Driver / Options.h
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
12 namespace llvm {
13 namespace opt {
14 class OptTable;
15 }
16 }
17
18 namespace clang {
19 namespace driver {
20
21 namespace options {
22 /// Flags specifically for clang options.  Must not overlap with
23 /// llvm::opt::DriverFlag.
24 enum 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
44 enum 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
55 const llvm::opt::OptTable &getDriverOptTable();
56 }
57 }
58
59 #endif