From 48d30fa01ce41f3624afade93f921e5facd99735 Mon Sep 17 00:00:00 2001
From: Nguyen Anh Quynh <aquynh@gmail.com>
Date: Wed, 11 May 2016 01:13:19 +0800
Subject: [PATCH] do not use strcasecmp() but StringRef.lower() for string
 comparison

---
 llvm/lib/MC/MCParser/AsmParser.cpp             | 6 +-----
 llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 8 ++------
 2 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 1490c24..f9061f5 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -1361,10 +1361,6 @@ bool AsmParser::isDirective(StringRef IDVal)
         return (IDVal[0] == '.' && IDVal != ".");
 }
 
-#if defined(_WIN32) || defined(_WIN64)
-#define strcasecmp _stricmp
-#endif
-
 /// ParseStatement:
 ///   ::= EndOfStatement
 ///   ::= Label* Directive ...Operands... EndOfStatement
@@ -1425,7 +1421,7 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
     // [bits xx]
     Lex();
     ID = Lexer.getTok();
-    if (strcasecmp(ID.getString().str().c_str(), "bits") == 0) {
+    if (ID.getString().lower() == "bits") {
         Lex();
         if (parseDirectiveBits()) {
             Info.KsError = KS_ERR_ASM_DIRECTIVE_ID;
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index d95dad5..08e3d44 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1273,10 +1273,6 @@ RewriteIntelBracExpression(SmallVectorImpl<AsmRewrite> &AsmRewrites,
   }
 }
 
-#if defined(_WIN32) || defined(_WIN64)
-#define strcasecmp _stricmp
-#endif
-
 bool X86AsmParser::ParseIntelExpression(IntelExprStateMachine &SM, SMLoc &End)
 {
   unsigned int ErrorCode;
@@ -1836,11 +1832,11 @@ std::unique_ptr<X86Operand> X86AsmParser::ParseIntelOperand(StringRef Mnem)
     Parser.Lex(); // Eat operand size (e.g., byte, word).
     if (KsSyntax == KS_OPT_SYNTAX_NASM) {
         // Nasm do not accept 'PTR' in memory operands
-        if (strcasecmp(Tok.getString().str().c_str(), "ptr") == 0)
+        if (Tok.getString().lower() == "ptr")
             return ErrorOperand(Tok.getLoc(), "Do not expected 'PTR' or 'ptr' token!");
     } else {
         // LLVM requires 'PTR' in memory operand
-        if (strcasecmp(Tok.getString().str().c_str(), "ptr") != 0)
+        if (Tok.getString().lower() != "ptr")
             return ErrorOperand(Tok.getLoc(), "Expected 'PTR' or 'ptr' token!");
         Parser.Lex(); // Eat ptr.
     }
-- 
GitLab