[NFC][Coroutines] Use structured binding with llvm::enumerate in CoroSplit (#116879)
[llvm-project.git] / lldb / source / Interpreter / OptionGroupMemoryTag.cpp
blobc6efab7c38711d8d4034276bf3e2d33c26174dfb
1 //===-- OptionGroupMemoryTag.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-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "lldb/Interpreter/OptionGroupMemoryTag.h"
11 #include "lldb/Host/OptionParser.h"
13 using namespace lldb;
14 using namespace lldb_private;
16 static const uint32_t SHORT_OPTION_SHOW_TAGS = 0x54414753; // 'tags'
18 OptionGroupMemoryTag::OptionGroupMemoryTag(bool note_binary /*=false*/)
19 : m_show_tags(false, false), m_option_definition{
20 LLDB_OPT_SET_1,
21 false,
22 "show-tags",
23 SHORT_OPTION_SHOW_TAGS,
24 OptionParser::eNoArgument,
25 nullptr,
26 {},
28 eArgTypeNone,
29 note_binary
30 ? "Include memory tags in output "
31 "(does not apply to binary output)."
32 : "Include memory tags in output."} {}
34 llvm::ArrayRef<OptionDefinition> OptionGroupMemoryTag::GetDefinitions() {
35 return llvm::ArrayRef(m_option_definition);
38 Status
39 OptionGroupMemoryTag::SetOptionValue(uint32_t option_idx,
40 llvm::StringRef option_arg,
41 ExecutionContext *execution_context) {
42 assert(option_idx == 0 && "Only one option in memory tag group!");
44 switch (m_option_definition.short_option) {
45 case SHORT_OPTION_SHOW_TAGS:
46 m_show_tags.SetCurrentValue(true);
47 m_show_tags.SetOptionWasSet();
48 break;
50 default:
51 llvm_unreachable("Unimplemented option");
54 return {};
57 void OptionGroupMemoryTag::OptionParsingStarting(
58 ExecutionContext *execution_context) {
59 m_show_tags.Clear();