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 14namespace llvm { 15namespace opt { 16class OptTable; 17} 18} 19 20namespace clang { 21namespace driver { 22 23namespace options { 24/// Flags specifically for clang options. Must not overlap with 25/// llvm::opt::DriverFlag. 26enum ClangFlags { 27 DriverOption = (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 Ignored = (1 << 13) 37}; 38 39enum ID { 40 OPT_INVALID = 0, // This is not an option ID. 41#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ 42 HELPTEXT, METAVAR, VALUES) \ 43 OPT_##ID, 44#include "clang/Driver/Options.inc" 45 LastOption 46#undef OPTION 47 }; 48} 49 50const llvm::opt::OptTable &getDriverOptTable(); 51} 52} 53 54#endif 55