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 }; 42 43 enum ID { 44 OPT_INVALID = 0, // This is not an option ID. 45 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ 46 HELPTEXT, METAVAR, VALUES) \ 47 OPT_##ID, 48 #include "clang/Driver/Options.inc" 49 LastOption 50 #undef OPTION 51 }; 52 } 53 54 const llvm::opt::OptTable &getDriverOptTable(); 55 } 56 } 57 58 #endif 59