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 15namespace llvm { 16namespace opt { 17class OptTable; 18} 19} 20 21namespace clang { 22namespace driver { 23 24namespace options { 25/// Flags specifically for clang options. Must not overlap with 26/// llvm::opt::DriverFlag. 27enum 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 40enum 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 50std::unique_ptr<llvm::opt::OptTable> createDriverOptTable(); 51} 52} 53 54#endif 55