aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectExpression.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-09-19 17:54:06 +0000
committerZachary Turner <zturner@google.com>2016-09-19 17:54:06 +0000
commitecbb0bb1690cd59da0224d7b906f968356b1265c (patch)
tree90951f44a7abb40b355e849a2e64cb09ec3ac900 /lldb/source/Commands/CommandObjectExpression.cpp
parent495b211a6c775e6fbc00a1e3a91786f6a880b82e (diff)
downloadllvm-ecbb0bb1690cd59da0224d7b906f968356b1265c.zip
llvm-ecbb0bb1690cd59da0224d7b906f968356b1265c.tar.gz
llvm-ecbb0bb1690cd59da0224d7b906f968356b1265c.tar.bz2
Fix more functions in Args to use StringRef.
This patch also marks the const char* versions as =delete to prevent their use. This has the potential to cause build breakages on some platforms which I can't compile. I have tested on Windows, Linux, and OSX. Best practices for fixing broken callsites are outlined in Args.h in a comment above the deleted function declarations. Eventually we can remove these =delete declarations, but for now they are important to make sure that all implicit conversions from const char * are manually audited to make sure that they do not invoke a conversion from nullptr. llvm-svn: 281919
Diffstat (limited to 'lldb/source/Commands/CommandObjectExpression.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectExpression.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp
index be4f5461..cc1fdf4 100644
--- a/lldb/source/Commands/CommandObjectExpression.cpp
+++ b/lldb/source/Commands/CommandObjectExpression.cpp
@@ -78,6 +78,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
ExecutionContext *execution_context) {
Error error;
+ auto option_strref = llvm::StringRef::withNullAsEmpty(option_arg);
const int short_option = g_option_table[option_idx].short_option;
switch (short_option) {
@@ -91,7 +92,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
case 'a': {
bool success;
bool result;
- result = Args::StringToBoolean(option_arg, true, &success);
+ result = Args::StringToBoolean(option_strref, true, &success);
if (!success)
error.SetErrorStringWithFormat(
"invalid all-threads value setting: \"%s\"", option_arg);
@@ -101,7 +102,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
case 'i': {
bool success;
- bool tmp_value = Args::StringToBoolean(option_arg, true, &success);
+ bool tmp_value = Args::StringToBoolean(option_strref, true, &success);
if (success)
ignore_breakpoints = tmp_value;
else
@@ -112,7 +113,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
case 'j': {
bool success;
- bool tmp_value = Args::StringToBoolean(option_arg, true, &success);
+ bool tmp_value = Args::StringToBoolean(option_strref, true, &success);
if (success)
allow_jit = tmp_value;
else
@@ -134,7 +135,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
case 'u': {
bool success;
- bool tmp_value = Args::StringToBoolean(option_arg, true, &success);
+ bool tmp_value = Args::StringToBoolean(option_strref, true, &success);
if (success)
unwind_on_error = tmp_value;
else
@@ -168,7 +169,7 @@ Error CommandObjectExpression::CommandOptions::SetOptionValue(
case 'X': {
bool success;
- bool tmp_value = Args::StringToBoolean(option_arg, true, &success);
+ bool tmp_value = Args::StringToBoolean(option_strref, true, &success);
if (success)
auto_apply_fixits = tmp_value ? eLazyBoolYes : eLazyBoolNo;
else