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 #include <memory> 13 14 namespace llvm { 15 namespace opt { 16 class OptTable; 17 } 18 } 19 20 namespace clang { 21 namespace driver { 22 23 namespace options { 24 /// Flags specifically for clang options. Must not overlap with 25 /// llvm::opt::DriverFlag. 26 enum ClangFlags { 27 NoXarchOption = (1 << 4), 28 LinkerInput = (1 << 5), 29 NoArgumentUnused = (1 << 6), 30 Unsupported = (1 << 7), 31 CoreOption = (1 << 8), 32 CLOption = (1 << 9), 33 CC1Option = (1 << 10), 34 CC1AsOption = (1 << 11), 35 NoDriverOption = (1 << 12), 36 LinkOption = (1 << 13), 37 FlangOption = (1 << 14), 38 FC1Option = (1 << 15), 39 FlangOnlyOption = (1 << 16), 40 Ignored = (1 << 17), 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