brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 7a0efba Raw
49 lines · cpp
1//===-- OptionGroupUUID.cpp -----------------------------------------------===//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#include "lldb/Interpreter/OptionGroupUUID.h"10 11#include "lldb/Host/OptionParser.h"12 13using namespace lldb;14using namespace lldb_private;15 16static constexpr OptionDefinition g_option_table[] = {17    {LLDB_OPT_SET_1, false, "uuid", 'u', OptionParser::eRequiredArgument,18     nullptr, {}, 0, eArgTypeModuleUUID, "A module UUID value."},19};20 21llvm::ArrayRef<OptionDefinition> OptionGroupUUID::GetDefinitions() {22  return llvm::ArrayRef(g_option_table);23}24 25Status OptionGroupUUID::SetOptionValue(uint32_t option_idx,26                                       llvm::StringRef option_arg,27                                       ExecutionContext *execution_context) {28  Status error;29  const int short_option = g_option_table[option_idx].short_option;30 31  switch (short_option) {32  case 'u':33    error = m_uuid.SetValueFromString(option_arg);34    if (error.Success())35      m_uuid.SetOptionWasSet();36    break;37 38  default:39    llvm_unreachable("Unimplemented option");40  }41 42  return error;43}44 45void OptionGroupUUID::OptionParsingStarting(46    ExecutionContext *execution_context) {47  m_uuid.Clear();48}49