//===--- Options.h - Option info & table ------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_DRIVER_OPTIONS_H #define LLVM_CLANG_DRIVER_OPTIONS_H #include "llvm/Option/OptTable.h" #include "llvm/Option/Option.h" namespace clang { namespace driver { namespace options { /// Flags specifically for clang options. Must not overlap with /// llvm::opt::DriverFlag. enum ClangFlags { NoXarchOption = (1 << 4), LinkerInput = (1 << 5), NoArgumentUnused = (1 << 6), Unsupported = (1 << 7), LinkOption = (1 << 8), Ignored = (1 << 9), TargetSpecific = (1 << 10), }; // Flags specifically for clang option visibility. We alias DefaultVis to // ClangOption, because "DefaultVis" is confusing in Options.td, which is used // for multiple drivers (clang, cl, flang, etc). enum ClangVisibility { ClangOption = llvm::opt::DefaultVis, CLOption = (1 << 1), CC1Option = (1 << 2), CC1AsOption = (1 << 3), FlangOption = (1 << 4), FC1Option = (1 << 5), DXCOption = (1 << 6), }; enum ID { OPT_INVALID = 0, // This is not an option ID. #define OPTION(...) LLVM_MAKE_OPT_ID(__VA_ARGS__), #include "clang/Driver/Options.inc" LastOption #undef OPTION }; } const llvm::opt::OptTable &getDriverOptTable(); } } #endif