forked from OSchip/llvm-project
82 lines
2.9 KiB
C++
82 lines
2.9 KiB
C++
//===-- Options.h -----------------------------------------------*- 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines command line options used by llvm-debuginfo-analyzer.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef OPTIONS_H
|
|
#define OPTIONS_H
|
|
|
|
#include "llvm/DebugInfo/LogicalView/Core/LVLine.h"
|
|
#include "llvm/DebugInfo/LogicalView/Core/LVOptions.h"
|
|
#include "llvm/DebugInfo/LogicalView/Core/LVScope.h"
|
|
#include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"
|
|
#include "llvm/DebugInfo/LogicalView/Core/LVType.h"
|
|
#include "llvm/Support/CommandLine.h"
|
|
|
|
namespace llvm {
|
|
namespace logicalview {
|
|
namespace cmdline {
|
|
|
|
class OffsetParser final : public llvm::cl::parser<unsigned long long> {
|
|
public:
|
|
OffsetParser(llvm::cl::Option &O);
|
|
~OffsetParser() override;
|
|
|
|
// Parse an argument representing an offset. Return true on error.
|
|
// If the prefix is 0, the base is octal, if the prefix is 0x or 0X, the
|
|
// base is hexadecimal, otherwise the base is decimal.
|
|
bool parse(llvm::cl::Option &O, StringRef ArgName, StringRef ArgValue,
|
|
unsigned long long &Val);
|
|
};
|
|
|
|
typedef llvm::cl::list<unsigned long long, bool, OffsetParser> OffsetOptionList;
|
|
|
|
extern llvm::cl::OptionCategory AttributeCategory;
|
|
extern llvm::cl::OptionCategory CompareCategory;
|
|
extern llvm::cl::OptionCategory OutputCategory;
|
|
extern llvm::cl::OptionCategory PrintCategory;
|
|
extern llvm::cl::OptionCategory ReportCategory;
|
|
extern llvm::cl::OptionCategory SelectCategory;
|
|
extern llvm::cl::OptionCategory WarningCategory;
|
|
extern llvm::cl::OptionCategory InternalCategory;
|
|
|
|
extern llvm::cl::list<std::string> InputFilenames;
|
|
extern llvm::cl::opt<std::string> OutputFilename;
|
|
|
|
extern llvm::cl::list<std::string> SelectPatterns;
|
|
|
|
extern llvm::cl::list<LVElementKind> SelectElements;
|
|
extern llvm::cl::list<LVLineKind> SelectLines;
|
|
extern llvm::cl::list<LVScopeKind> SelectScopes;
|
|
extern llvm::cl::list<LVSymbolKind> SelectSymbols;
|
|
extern llvm::cl::list<LVTypeKind> SelectTypes;
|
|
extern OffsetOptionList SelectOffsets;
|
|
|
|
extern llvm::cl::list<LVAttributeKind> AttributeOptions;
|
|
extern llvm::cl::list<LVOutputKind> OutputOptions;
|
|
extern llvm::cl::list<LVPrintKind> PrintOptions;
|
|
extern llvm::cl::list<LVWarningKind> WarningOptions;
|
|
extern llvm::cl::list<LVInternalKind> InternalOptions;
|
|
|
|
extern llvm::cl::list<LVCompareKind> CompareElements;
|
|
extern llvm::cl::list<LVReportKind> ReportOptions;
|
|
|
|
extern LVOptions ReaderOptions;
|
|
|
|
// Perform any additional post parse command line actions. Propagate the
|
|
// values captured by the command line parser, into the generic reader.
|
|
void propagateOptions();
|
|
|
|
} // namespace cmdline
|
|
} // namespace logicalview
|
|
} // namespace llvm
|
|
|
|
#endif // OPTIONS_H
|