1 //===--- Options.h - Option info & table ------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_CLANG_DRIVER_OPTIONS_H 11 #define LLVM_CLANG_DRIVER_OPTIONS_H 12 13 #include <memory> 14 15 namespace llvm { 16 namespace opt { 17 class OptTable; 18 } 19 } 20 21 namespace clang { 22 namespace driver { 23 24 namespace options { 25 /// Flags specifically for clang options. Must not overlap with 26 /// llvm::opt::DriverFlag. 27 enum ClangFlags { 28 DriverOption = (1 << 4), 29 LinkerInput = (1 << 5), 30 NoArgumentUnused = (1 << 6), 31 Unsupported = (1 << 7), 32 CoreOption = (1 << 8), 33 CLOption = (1 << 9), 34 CC1Option = (1 << 10), 35 CC1AsOption = (1 << 11), 36 NoDriverOption = (1 << 12), 37 Ignored = (1 << 13) 38 }; 39 40 enum ID { 41 OPT_INVALID = 0, // This is not an option ID. 42 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ 43 HELPTEXT, METAVAR) OPT_##ID, 44 #include "clang/Driver/Options.inc" 45 LastOption 46 #undef OPTION 47 }; 48 } 49 50 std::unique_ptr<llvm::opt::OptTable> createDriverOptTable(); 51 } 52 } 53 54 #endif 55