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 CLANG_DRIVER_OPTIONS_H 11 #define CLANG_DRIVER_OPTIONS_H 12 13 namespace llvm { 14 namespace opt { 15 class OptTable; 16 } 17 } 18 19 namespace clang { 20 namespace driver { 21 22 namespace options { 23 /// Flags specifically for clang options. Must not overlap with 24 /// llvm::opt::DriverFlag. 25 enum ClangFlags { 26 DriverOption = (1 << 4), 27 LinkerInput = (1 << 5), 28 NoArgumentUnused = (1 << 6), 29 Unsupported = (1 << 7), 30 CoreOption = (1 << 8), 31 CLOption = (1 << 9), 32 CC1Option = (1 << 10), 33 CC1AsOption = (1 << 11), 34 NoDriverOption = (1 << 12) 35 }; 36 37 enum ID { 38 OPT_INVALID = 0, // This is not an option ID. 39 #define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ 40 HELPTEXT, METAVAR) OPT_##ID, 41 #include "clang/Driver/Options.inc" 42 LastOption 43 #undef OPTION 44 }; 45 } 46 47 llvm::opt::OptTable *createDriverOptTable(); 48 } 49 } 50 51 #endif 52