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, VALUES) \ 44 OPT_##ID, 45#include "clang/Driver/Options.inc" 46 LastOption 47#undef OPTION 48 }; 49} 50 51std::unique_ptr<llvm::opt::OptTable> createDriverOptTable(); 52} 53} 54 55#endif 56