Skip to content

Commit 3c9cef3

Browse files
committed
[lldb] Make conversions from llvm::Error explicit with Status::FromEr… (llvm#107163)
…ror() [NFC] (cherry picked from commit a0dd90e)
1 parent 1919751 commit 3c9cef3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+157
-140
lines changed

lldb/include/lldb/Utility/Status.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ class Status {
9191

9292
~Status();
9393

94-
// llvm::Error support
95-
explicit Status(llvm::Error error) { *this = std::move(error); }
96-
const Status &operator=(llvm::Error error);
94+
/// Avoid using this in new code. Migrate APIs to llvm::Expected instead.
95+
static Status FromError(llvm::Error error);
96+
/// FIXME: Replace this with a takeError method.
9797
llvm::Error ToError() const;
9898

9999
/// Get the error string associated with the current error.
@@ -145,6 +145,7 @@ class Status {
145145
bool Success() const;
146146

147147
protected:
148+
Status(llvm::Error error);
148149
/// Status code as an integer value.
149150
ValueType m_code = 0;
150151
/// The type of the above error code.

lldb/source/API/SBDebugger.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ lldb::SBError SBDebugger::InitializeWithErrorHandling() {
220220
SBError error;
221221
if (auto e = g_debugger_lifetime->Initialize(
222222
std::make_unique<SystemInitializerFull>(), LoadPlugin)) {
223-
error.SetError(Status(std::move(e)));
223+
error.SetError(Status::FromError(std::move(e)));
224224
}
225225
return error;
226226
}

lldb/source/API/SBTarget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1694,7 +1694,7 @@ SBError SBTarget::SetLabel(const char *label) {
16941694
if (!target_sp)
16951695
return Status::FromErrorString("Couldn't get internal target object.");
16961696

1697-
return Status(target_sp->SetLabel(label));
1697+
return Status::FromError(target_sp->SetLabel(label));
16981698
}
16991699

17001700
uint32_t SBTarget::GetDataByteSize() {

lldb/source/Commands/CommandObjectBreakpoint.cpp

Lines changed: 57 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,16 @@ class lldb_private::BreakpointOptionGroup : public OptionGroup {
8989
if (success)
9090
m_bp_opts.SetAutoContinue(value);
9191
else
92-
error = CreateOptionParsingError(option_arg, short_option, long_option,
93-
g_bool_parsing_error_message);
92+
error = Status::FromError(
93+
CreateOptionParsingError(option_arg, short_option, long_option,
94+
g_bool_parsing_error_message));
9495
} break;
9596
case 'i': {
9697
uint32_t ignore_count;
9798
if (option_arg.getAsInteger(0, ignore_count))
98-
error = CreateOptionParsingError(option_arg, short_option, long_option,
99-
g_int_parsing_error_message);
99+
error = Status::FromError(
100+
CreateOptionParsingError(option_arg, short_option, long_option,
101+
g_int_parsing_error_message));
100102
else
101103
m_bp_opts.SetIgnoreCount(ignore_count);
102104
} break;
@@ -106,29 +108,31 @@ class lldb_private::BreakpointOptionGroup : public OptionGroup {
106108
if (success) {
107109
m_bp_opts.SetOneShot(value);
108110
} else
109-
error = CreateOptionParsingError(option_arg, short_option, long_option,
110-
g_bool_parsing_error_message);
111+
error = Status::FromError(
112+
CreateOptionParsingError(option_arg, short_option, long_option,
113+
g_bool_parsing_error_message));
111114
} break;
112115
case 't': {
113116
lldb::tid_t thread_id = LLDB_INVALID_THREAD_ID;
114117
if (option_arg == "current") {
115118
if (!execution_context) {
116-
error = CreateOptionParsingError(
119+
error = Status::FromError(CreateOptionParsingError(
117120
option_arg, short_option, long_option,
118-
"No context to determine current thread");
121+
"No context to determine current thread"));
119122
} else {
120123
ThreadSP ctx_thread_sp = execution_context->GetThreadSP();
121124
if (!ctx_thread_sp || !ctx_thread_sp->IsValid()) {
122-
error =
125+
error = Status::FromError(
123126
CreateOptionParsingError(option_arg, short_option, long_option,
124-
"No currently selected thread");
127+
"No currently selected thread"));
125128
} else {
126129
thread_id = ctx_thread_sp->GetID();
127130
}
128131
}
129132
} else if (option_arg.getAsInteger(0, thread_id)) {
130-
error = CreateOptionParsingError(option_arg, short_option, long_option,
131-
g_int_parsing_error_message);
133+
error = Status::FromError(
134+
CreateOptionParsingError(option_arg, short_option, long_option,
135+
g_int_parsing_error_message));
132136
}
133137
if (thread_id != LLDB_INVALID_THREAD_ID)
134138
m_bp_opts.SetThreadID(thread_id);
@@ -142,8 +146,9 @@ class lldb_private::BreakpointOptionGroup : public OptionGroup {
142146
case 'x': {
143147
uint32_t thread_index = UINT32_MAX;
144148
if (option_arg.getAsInteger(0, thread_index)) {
145-
error = CreateOptionParsingError(option_arg, short_option, long_option,
146-
g_int_parsing_error_message);
149+
error = Status::FromError(
150+
CreateOptionParsingError(option_arg, short_option, long_option,
151+
g_int_parsing_error_message));
147152
} else {
148153
m_bp_opts.GetThreadSpec()->SetIndex(thread_index);
149154
}
@@ -286,9 +291,9 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
286291

287292
case 'u':
288293
if (option_arg.getAsInteger(0, m_column))
289-
error =
294+
error = Status::FromError(
290295
CreateOptionParsingError(option_arg, short_option, long_option,
291-
g_int_parsing_error_message);
296+
g_int_parsing_error_message));
292297
break;
293298

294299
case 'E': {
@@ -331,8 +336,8 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
331336
error_context = "Unsupported language type for exception breakpoint";
332337
}
333338
if (!error_context.empty())
334-
error = CreateOptionParsingError(option_arg, short_option,
335-
long_option, error_context);
339+
error = Status::FromError(CreateOptionParsingError(
340+
option_arg, short_option, long_option, error_context));
336341
} break;
337342

338343
case 'f':
@@ -348,9 +353,9 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
348353
bool success;
349354
m_catch_bp = OptionArgParser::ToBoolean(option_arg, true, &success);
350355
if (!success)
351-
error =
356+
error = Status::FromError(
352357
CreateOptionParsingError(option_arg, short_option, long_option,
353-
g_bool_parsing_error_message);
358+
g_bool_parsing_error_message));
354359
} break;
355360

356361
case 'H':
@@ -367,24 +372,24 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
367372
m_skip_prologue = eLazyBoolNo;
368373

369374
if (!success)
370-
error =
375+
error = Status::FromError(
371376
CreateOptionParsingError(option_arg, short_option, long_option,
372-
g_bool_parsing_error_message);
377+
g_bool_parsing_error_message));
373378
} break;
374379

375380
case 'l':
376381
if (option_arg.getAsInteger(0, m_line_num))
377-
error =
382+
error = Status::FromError(
378383
CreateOptionParsingError(option_arg, short_option, long_option,
379-
g_int_parsing_error_message);
384+
g_int_parsing_error_message));
380385
break;
381386

382387
case 'L':
383388
m_language = Language::GetLanguageTypeFromString(option_arg);
384389
if (m_language == eLanguageTypeUnknown)
385-
error =
390+
error = Status::FromError(
386391
CreateOptionParsingError(option_arg, short_option, long_option,
387-
g_language_parsing_error_message);
392+
g_language_parsing_error_message));
388393
break;
389394

390395
case 'm': {
@@ -397,9 +402,9 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
397402
m_move_to_nearest_code = eLazyBoolNo;
398403

399404
if (!success)
400-
error =
405+
error = Status::FromError(
401406
CreateOptionParsingError(option_arg, short_option, long_option,
402-
g_bool_parsing_error_message);
407+
g_bool_parsing_error_message));
403408
break;
404409
}
405410

@@ -417,8 +422,9 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
417422
if (BreakpointID::StringIsBreakpointName(option_arg, error))
418423
m_breakpoint_names.push_back(std::string(option_arg));
419424
else
420-
error = CreateOptionParsingError(
421-
option_arg, short_option, long_option, "Invalid breakpoint name");
425+
error = Status::FromError(
426+
CreateOptionParsingError(option_arg, short_option, long_option,
427+
"Invalid breakpoint name"));
422428
break;
423429
}
424430

@@ -456,9 +462,9 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
456462
bool success;
457463
m_throw_bp = OptionArgParser::ToBoolean(option_arg, true, &success);
458464
if (!success)
459-
error =
465+
error = Status::FromError(
460466
CreateOptionParsingError(option_arg, short_option, long_option,
461-
g_bool_parsing_error_message);
467+
g_bool_parsing_error_message));
462468
} break;
463469

464470
case 'X':
@@ -470,8 +476,8 @@ class CommandObjectBreakpointSet : public CommandObjectParsed {
470476
OptionValueFileColonLine value;
471477
Status fcl_err = value.SetValueFromString(option_arg);
472478
if (!fcl_err.Success()) {
473-
error = CreateOptionParsingError(option_arg, short_option,
474-
long_option, fcl_err.AsCString());
479+
error = Status::FromError(CreateOptionParsingError(
480+
option_arg, short_option, long_option, fcl_err.AsCString()));
475481
} else {
476482
m_filenames.AppendIfUnique(value.GetFileSpec());
477483
m_line_num = value.GetLineNumber();
@@ -1552,13 +1558,15 @@ class BreakpointNameOptionGroup : public OptionGroup {
15521558
break;
15531559
case 'B':
15541560
if (m_breakpoint.SetValueFromString(option_arg).Fail())
1555-
error = CreateOptionParsingError(option_arg, short_option, long_option,
1556-
g_int_parsing_error_message);
1561+
error = Status::FromError(
1562+
CreateOptionParsingError(option_arg, short_option, long_option,
1563+
g_int_parsing_error_message));
15571564
break;
15581565
case 'D':
15591566
if (m_use_dummy.SetValueFromString(option_arg).Fail())
1560-
error = CreateOptionParsingError(option_arg, short_option, long_option,
1561-
g_bool_parsing_error_message);
1567+
error = Status::FromError(
1568+
CreateOptionParsingError(option_arg, short_option, long_option,
1569+
g_bool_parsing_error_message));
15621570
break;
15631571
case 'H':
15641572
m_help_string.SetValueFromString(option_arg);
@@ -1611,26 +1619,29 @@ class BreakpointAccessOptionGroup : public OptionGroup {
16111619
if (success) {
16121620
m_permissions.SetAllowList(value);
16131621
} else
1614-
error = CreateOptionParsingError(option_arg, short_option, long_option,
1615-
g_bool_parsing_error_message);
1622+
error = Status::FromError(
1623+
CreateOptionParsingError(option_arg, short_option, long_option,
1624+
g_bool_parsing_error_message));
16161625
} break;
16171626
case 'A': {
16181627
bool value, success;
16191628
value = OptionArgParser::ToBoolean(option_arg, false, &success);
16201629
if (success) {
16211630
m_permissions.SetAllowDisable(value);
16221631
} else
1623-
error = CreateOptionParsingError(option_arg, short_option, long_option,
1624-
g_bool_parsing_error_message);
1632+
error = Status::FromError(
1633+
CreateOptionParsingError(option_arg, short_option, long_option,
1634+
g_bool_parsing_error_message));
16251635
} break;
16261636
case 'D': {
16271637
bool value, success;
16281638
value = OptionArgParser::ToBoolean(option_arg, false, &success);
16291639
if (success) {
16301640
m_permissions.SetAllowDelete(value);
16311641
} else
1632-
error = CreateOptionParsingError(option_arg, short_option, long_option,
1633-
g_bool_parsing_error_message);
1642+
error = Status::FromError(
1643+
CreateOptionParsingError(option_arg, short_option, long_option,
1644+
g_bool_parsing_error_message));
16341645
} break;
16351646
default:
16361647
llvm_unreachable("Unimplemented option");
@@ -2114,8 +2125,8 @@ class CommandObjectBreakpointRead : public CommandObjectParsed {
21142125
Status name_error;
21152126
if (!BreakpointID::StringIsBreakpointName(llvm::StringRef(option_arg),
21162127
name_error)) {
2117-
error = CreateOptionParsingError(option_arg, short_option,
2118-
long_option, name_error.AsCString());
2128+
error = Status::FromError(CreateOptionParsingError(
2129+
option_arg, short_option, long_option, name_error.AsCString()));
21192130
}
21202131
m_names.push_back(std::string(option_arg));
21212132
break;

lldb/source/Commands/CommandObjectMemoryTag.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class CommandObjectMemoryTagRead : public CommandObjectParsed {
7777
process->GetMemoryTagManager();
7878

7979
if (!tag_manager_or_err) {
80-
result.SetError(Status(tag_manager_or_err.takeError()));
80+
result.SetError(Status::FromError(tag_manager_or_err.takeError()));
8181
return;
8282
}
8383

@@ -102,15 +102,15 @@ class CommandObjectMemoryTagRead : public CommandObjectParsed {
102102
tag_manager->MakeTaggedRange(start_addr, end_addr, memory_regions);
103103

104104
if (!tagged_range) {
105-
result.SetError(Status(tagged_range.takeError()));
105+
result.SetError(Status::FromError(tagged_range.takeError()));
106106
return;
107107
}
108108

109109
llvm::Expected<std::vector<lldb::addr_t>> tags = process->ReadMemoryTags(
110110
tagged_range->GetRangeBase(), tagged_range->GetByteSize());
111111

112112
if (!tags) {
113-
result.SetError(Status(tags.takeError()));
113+
result.SetError(Status::FromError(tags.takeError()));
114114
return;
115115
}
116116

@@ -230,7 +230,7 @@ class CommandObjectMemoryTagWrite : public CommandObjectParsed {
230230
process->GetMemoryTagManager();
231231

232232
if (!tag_manager_or_err) {
233-
result.SetError(Status(tag_manager_or_err.takeError()));
233+
result.SetError(Status::FromError(tag_manager_or_err.takeError()));
234234
return;
235235
}
236236

@@ -282,7 +282,7 @@ class CommandObjectMemoryTagWrite : public CommandObjectParsed {
282282
memory_regions);
283283

284284
if (!tagged_range) {
285-
result.SetError(Status(tagged_range.takeError()));
285+
result.SetError(Status::FromError(tagged_range.takeError()));
286286
return;
287287
}
288288

lldb/source/Commands/CommandObjectStats.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,21 +87,21 @@ class CommandObjectStatsDump : public CommandObjectParsed {
8787
OptionArgParser::ToBoolean("--targets", option_arg))
8888
m_stats_options.SetIncludeTargets(*bool_or_error);
8989
else
90-
error = bool_or_error.takeError();
90+
error = Status::FromError(bool_or_error.takeError());
9191
break;
9292
case 'm':
9393
if (llvm::Expected<bool> bool_or_error =
9494
OptionArgParser::ToBoolean("--modules", option_arg))
9595
m_stats_options.SetIncludeModules(*bool_or_error);
9696
else
97-
error = bool_or_error.takeError();
97+
error = Status::FromError(bool_or_error.takeError());
9898
break;
9999
case 't':
100100
if (llvm::Expected<bool> bool_or_error =
101101
OptionArgParser::ToBoolean("--transcript", option_arg))
102102
m_stats_options.SetIncludeTranscript(*bool_or_error);
103103
else
104-
error = bool_or_error.takeError();
104+
error = Status::FromError(bool_or_error.takeError());
105105
break;
106106
default:
107107
llvm_unreachable("Unimplemented option");

lldb/source/Commands/CommandObjectTrace.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ class CommandObjectTraceSchema : public CommandObjectParsed {
361361
Trace::FindPluginSchema(plugin_name))
362362
result.AppendMessage(*schemaOrErr);
363363
else
364-
error = schemaOrErr.takeError();
364+
error = Status::FromError(schemaOrErr.takeError());
365365
}
366366

367367
if (error.Success()) {

lldb/source/Core/PluginManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ Status PluginManager::SaveCore(const lldb::ProcessSP &process_sp,
723723
llvm::Expected<bool> ret =
724724
process_sp->SaveCore(options.GetOutputFile()->GetPath());
725725
if (!ret)
726-
return Status(ret.takeError());
726+
return Status::FromError(ret.takeError());
727727
if (ret.get())
728728
return Status();
729729
}

lldb/source/Core/ThreadedCommunication.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ bool ThreadedCommunication::StartReadThread(Status *error_ptr) {
178178
m_read_thread = *maybe_thread;
179179
} else {
180180
if (error_ptr)
181-
*error_ptr = Status(maybe_thread.takeError());
181+
*error_ptr = Status::FromError(maybe_thread.takeError());
182182
else {
183183
LLDB_LOG_ERROR(GetLog(LLDBLog::Host), maybe_thread.takeError(),
184184
"failed to launch host thread: {0}");

lldb/source/Core/ValueObjectVTable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ bool ValueObjectVTable::UpdateValue() {
220220
llvm::Expected<LanguageRuntime::VTableInfo> vtable_info_or_err =
221221
language_runtime->GetVTableInfo(*parent, /*check_type=*/true);
222222
if (!vtable_info_or_err) {
223-
m_error = vtable_info_or_err.takeError();
223+
m_error = Status::FromError(vtable_info_or_err.takeError());
224224
return false;
225225
}
226226

0 commit comments

Comments
 (0)