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 "llvm/Option/OptTable.h" 13#include "llvm/Option/Option.h" 14 15namespace clang { 16namespace driver { 17 18namespace options { 19/// Flags specifically for clang options. Must not overlap with 20/// llvm::opt::DriverFlag. 21enum ClangFlags { 22 NoXarchOption = (1 << 4), 23 LinkerInput = (1 << 5), 24 NoArgumentUnused = (1 << 6), 25 Unsupported = (1 << 7), 26 LinkOption = (1 << 8), 27 Ignored = (1 << 9), 28 TargetSpecific = (1 << 10), 29}; 30 31// Flags specifically for clang option visibility. We alias DefaultVis to 32// ClangOption, because "DefaultVis" is confusing in Options.td, which is used 33// for multiple drivers (clang, cl, flang, etc). 34enum ClangVisibility { 35 ClangOption = llvm::opt::DefaultVis, 36 CLOption = (1 << 1), 37 CC1Option = (1 << 2), 38 CC1AsOption = (1 << 3), 39 FlangOption = (1 << 4), 40 FC1Option = (1 << 5), 41 DXCOption = (1 << 6), 42}; 43 44enum ID { 45 OPT_INVALID = 0, // This is not an option ID. 46#define OPTION(...) LLVM_MAKE_OPT_ID(__VA_ARGS__), 47#include "clang/Driver/Options.inc" 48 LastOption 49#undef OPTION 50 }; 51} 52 53const llvm::opt::OptTable &getDriverOptTable(); 54} 55} 56 57#endif 58