blob: 0797410e9940e22f1e6d9393b64191da62c04f1a [file] [log] [blame]
//===--- 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