| //===-- 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 |