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