brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 7f30141 Raw
82 lines · c
1//===-- Options.h -----------------------------------------------*- 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-exception6//7//===----------------------------------------------------------------------===//8//9// This file defines command line options used by llvm-debuginfo-analyzer.10//11//===----------------------------------------------------------------------===//12 13#ifndef OPTIONS_H14#define OPTIONS_H15 16#include "llvm/DebugInfo/LogicalView/Core/LVLine.h"17#include "llvm/DebugInfo/LogicalView/Core/LVOptions.h"18#include "llvm/DebugInfo/LogicalView/Core/LVScope.h"19#include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"20#include "llvm/DebugInfo/LogicalView/Core/LVType.h"21#include "llvm/Support/CommandLine.h"22 23namespace llvm {24namespace logicalview {25namespace cmdline {26 27class OffsetParser final : public llvm::cl::parser<unsigned long long> {28public:29  OffsetParser(llvm::cl::Option &O);30  ~OffsetParser() override;31 32  // Parse an argument representing an offset. Return true on error.33  // If the prefix is 0, the base is octal, if the prefix is 0x or 0X, the34  // base is hexadecimal, otherwise the base is decimal.35  bool parse(llvm::cl::Option &O, StringRef ArgName, StringRef ArgValue,36             unsigned long long &Val);37};38 39typedef llvm::cl::list<unsigned long long, bool, OffsetParser> OffsetOptionList;40 41extern llvm::cl::OptionCategory AttributeCategory;42extern llvm::cl::OptionCategory CompareCategory;43extern llvm::cl::OptionCategory OutputCategory;44extern llvm::cl::OptionCategory PrintCategory;45extern llvm::cl::OptionCategory ReportCategory;46extern llvm::cl::OptionCategory SelectCategory;47extern llvm::cl::OptionCategory WarningCategory;48extern llvm::cl::OptionCategory InternalCategory;49 50extern llvm::cl::list<std::string> InputFilenames;51extern llvm::cl::opt<std::string> OutputFilename;52 53extern llvm::cl::list<std::string> SelectPatterns;54 55extern llvm::cl::list<LVElementKind> SelectElements;56extern llvm::cl::list<LVLineKind> SelectLines;57extern llvm::cl::list<LVScopeKind> SelectScopes;58extern llvm::cl::list<LVSymbolKind> SelectSymbols;59extern llvm::cl::list<LVTypeKind> SelectTypes;60extern OffsetOptionList SelectOffsets;61 62extern llvm::cl::list<LVAttributeKind> AttributeOptions;63extern llvm::cl::list<LVOutputKind> OutputOptions;64extern llvm::cl::list<LVPrintKind> PrintOptions;65extern llvm::cl::list<LVWarningKind> WarningOptions;66extern llvm::cl::list<LVInternalKind> InternalOptions;67 68extern llvm::cl::list<LVCompareKind> CompareElements;69extern llvm::cl::list<LVReportKind> ReportOptions;70 71extern LVOptions ReaderOptions;72 73// Perform any additional post parse command line actions. Propagate the74// values captured by the command line parser, into the generic reader.75void propagateOptions();76 77} // namespace cmdline78} // namespace logicalview79} // namespace llvm80 81#endif // OPTIONS_H82