Skip to content

Commit 13a3b0b

Browse files
committed
[lldb] Remove usages of case-insensitive c-string functions
They are not portable (which meant we had a hand-rolled implementation for windows), and llvm::StringRef provides equivalent functionality.
1 parent f10cee9 commit 13a3b0b

File tree

11 files changed

+203
-218
lines changed

11 files changed

+203
-218
lines changed

lldb/include/lldb/Host/windows/PosixApi.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,6 @@ typedef uint32_t pid_t;
8989
// Various useful posix functions that are not present in Windows. We provide
9090
// custom implementations.
9191
int vasprintf(char **ret, const char *fmt, va_list ap);
92-
char *strcasestr(const char *s, const char *find);
93-
94-
#ifdef _MSC_VER
95-
96-
int strcasecmp(const char *s1, const char *s2);
97-
int strncasecmp(const char *s1, const char *s2, size_t n);
98-
99-
#endif // _MSC_VER
10092

10193
// empty functions
10294
inline int posix_openpt(int flag) { LLVM_BUILTIN_UNREACHABLE; }

lldb/source/API/SBFrame.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -637,9 +637,9 @@ SBValue SBFrame::FindValue(const char *name, ValueType value_type,
637637
for (uint32_t set_idx = 0; set_idx < num_sets; ++set_idx) {
638638
const RegisterSet *reg_set = reg_ctx->GetRegisterSet(set_idx);
639639
if (reg_set &&
640-
((reg_set->name && strcasecmp(reg_set->name, name) == 0) ||
641-
(reg_set->short_name &&
642-
strcasecmp(reg_set->short_name, name) == 0))) {
640+
(llvm::StringRef(reg_set->name).equals_insensitive(name) ||
641+
llvm::StringRef(reg_set->short_name)
642+
.equals_insensitive(name))) {
643643
value_sp =
644644
ValueObjectRegisterSet::Create(frame, reg_ctx, set_idx);
645645
sb_value.SetSP(value_sp);

lldb/source/DataFormatters/FormatManager.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,20 @@ static bool GetFormatFromFormatChar(char format_char, Format &format) {
8989
return false;
9090
}
9191

92-
static bool GetFormatFromFormatName(const char *format_name,
92+
static bool GetFormatFromFormatName(llvm::StringRef format_name,
9393
bool partial_match_ok, Format &format) {
9494
uint32_t i;
9595
for (i = 0; i < g_num_format_infos; ++i) {
96-
if (strcasecmp(g_format_infos[i].format_name, format_name) == 0) {
96+
if (format_name.equals_insensitive(g_format_infos[i].format_name)) {
9797
format = g_format_infos[i].format;
9898
return true;
9999
}
100100
}
101101

102102
if (partial_match_ok) {
103103
for (i = 0; i < g_num_format_infos; ++i) {
104-
if (strcasestr(g_format_infos[i].format_name, format_name) ==
105-
g_format_infos[i].format_name) {
104+
if (llvm::StringRef(g_format_infos[i].format_name)
105+
.startswith_insensitive(format_name)) {
106106
format = g_format_infos[i].format;
107107
return true;
108108
}

lldb/source/Host/windows/Windows.cpp

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -44,32 +44,8 @@ int vasprintf(char **ret, const char *fmt, va_list ap) {
4444
return len;
4545
}
4646

47-
char *strcasestr(const char *s, const char *find) {
48-
char c, sc;
49-
size_t len;
50-
51-
if ((c = *find++) != 0) {
52-
c = tolower((unsigned char)c);
53-
len = strlen(find);
54-
do {
55-
do {
56-
if ((sc = *s++) == 0)
57-
return 0;
58-
} while ((char)tolower((unsigned char)sc) != c);
59-
} while (strncasecmp(s, find, len) != 0);
60-
s--;
61-
}
62-
return const_cast<char *>(s);
63-
}
64-
6547
#ifdef _MSC_VER
6648

67-
int strcasecmp(const char *s1, const char *s2) { return stricmp(s1, s2); }
68-
69-
int strncasecmp(const char *s1, const char *s2, size_t n) {
70-
return strnicmp(s1, s2, n);
71-
}
72-
7349
#if _MSC_VER < 1900
7450
namespace lldb_private {
7551
int vsnprintf(char *buffer, size_t count, const char *format, va_list argptr) {

lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13761,35 +13761,33 @@ EmulateInstructionARM::GetThumbOpcodeForInstruction(const uint32_t opcode,
1376113761
bool EmulateInstructionARM::SetArchitecture(const ArchSpec &arch) {
1376213762
m_arch = arch;
1376313763
m_arm_isa = 0;
13764-
const char *arch_cstr = arch.GetArchitectureName();
13765-
if (arch_cstr) {
13766-
if (0 == ::strcasecmp(arch_cstr, "armv4t"))
13767-
m_arm_isa = ARMv4T;
13768-
else if (0 == ::strcasecmp(arch_cstr, "armv5tej"))
13769-
m_arm_isa = ARMv5TEJ;
13770-
else if (0 == ::strcasecmp(arch_cstr, "armv5te"))
13771-
m_arm_isa = ARMv5TE;
13772-
else if (0 == ::strcasecmp(arch_cstr, "armv5t"))
13773-
m_arm_isa = ARMv5T;
13774-
else if (0 == ::strcasecmp(arch_cstr, "armv6k"))
13775-
m_arm_isa = ARMv6K;
13776-
else if (0 == ::strcasecmp(arch_cstr, "armv6t2"))
13777-
m_arm_isa = ARMv6T2;
13778-
else if (0 == ::strcasecmp(arch_cstr, "armv7s"))
13779-
m_arm_isa = ARMv7S;
13780-
else if (0 == ::strcasecmp(arch_cstr, "arm"))
13781-
m_arm_isa = ARMvAll;
13782-
else if (0 == ::strcasecmp(arch_cstr, "thumb"))
13783-
m_arm_isa = ARMvAll;
13784-
else if (0 == ::strncasecmp(arch_cstr, "armv4", 5))
13785-
m_arm_isa = ARMv4;
13786-
else if (0 == ::strncasecmp(arch_cstr, "armv6", 5))
13787-
m_arm_isa = ARMv6;
13788-
else if (0 == ::strncasecmp(arch_cstr, "armv7", 5))
13789-
m_arm_isa = ARMv7;
13790-
else if (0 == ::strncasecmp(arch_cstr, "armv8", 5))
13791-
m_arm_isa = ARMv8;
13792-
}
13764+
llvm::StringRef arch_cstr = arch.GetArchitectureName();
13765+
if (arch_cstr.equals_insensitive("armv4t"))
13766+
m_arm_isa = ARMv4T;
13767+
else if (arch_cstr.equals_insensitive("armv5tej"))
13768+
m_arm_isa = ARMv5TEJ;
13769+
else if (arch_cstr.equals_insensitive("armv5te"))
13770+
m_arm_isa = ARMv5TE;
13771+
else if (arch_cstr.equals_insensitive("armv5t"))
13772+
m_arm_isa = ARMv5T;
13773+
else if (arch_cstr.equals_insensitive("armv6k"))
13774+
m_arm_isa = ARMv6K;
13775+
else if (arch_cstr.equals_insensitive("armv6t2"))
13776+
m_arm_isa = ARMv6T2;
13777+
else if (arch_cstr.equals_insensitive("armv7s"))
13778+
m_arm_isa = ARMv7S;
13779+
else if (arch_cstr.equals_insensitive("arm"))
13780+
m_arm_isa = ARMvAll;
13781+
else if (arch_cstr.equals_insensitive("thumb"))
13782+
m_arm_isa = ARMvAll;
13783+
else if (arch_cstr.startswith_insensitive("armv4"))
13784+
m_arm_isa = ARMv4;
13785+
else if (arch_cstr.startswith_insensitive("armv6"))
13786+
m_arm_isa = ARMv6;
13787+
else if (arch_cstr.startswith_insensitive("armv7"))
13788+
m_arm_isa = ARMv7;
13789+
else if (arch_cstr.startswith_insensitive("armv8"))
13790+
m_arm_isa = ARMv8;
1379313791
return m_arm_isa != 0;
1379413792
}
1379513793

0 commit comments

Comments
 (0)