[PATCH] D72686: [AsmParser] Make generic directives and aliases case insensitive.
David Spickett via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 17 03:11:29 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG37fb3b33637b: [AsmParser] Make generic directives and aliases case insensitive. (authored by DavidSpickett).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72686/new/
https://reviews.llvm.org/D72686
Files:
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/test/MC/AsmParser/directive_case_insensitive.s
Index: llvm/test/MC/AsmParser/directive_case_insensitive.s
===================================================================
--- /dev/null
+++ llvm/test/MC/AsmParser/directive_case_insensitive.s
@@ -0,0 +1,16 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+# CHECK: .byte 65
+ .ascii "A"
+# CHECK: .byte 66
+ .ASCII "B"
+# CHECK: .byte 67
+ .aScIi "C"
+
+# Note: using 2byte because it is an alias
+# CHECK: .short 4660
+ .2byte 0x1234
+# CHECK: .short 4661
+ .2BYTE 0x1235
+# CHECK: .short 4662
+ .2bYtE 0x1236
Index: llvm/lib/MC/MCParser/AsmParser.cpp
===================================================================
--- llvm/lib/MC/MCParser/AsmParser.cpp
+++ llvm/lib/MC/MCParser/AsmParser.cpp
@@ -199,7 +199,7 @@
}
void addAliasForDirective(StringRef Directive, StringRef Alias) override {
- DirectiveKindMap[Directive] = DirectiveKindMap[Alias];
+ DirectiveKindMap[Directive.lower()] = DirectiveKindMap[Alias.lower()];
}
/// @name MCAsmParser Interface
@@ -1750,7 +1750,7 @@
// have to do this so that .endif isn't skipped in a ".if 0" block for
// example.
StringMap<DirectiveKind>::const_iterator DirKindIt =
- DirectiveKindMap.find(IDVal);
+ DirectiveKindMap.find(IDVal.lower());
DirectiveKind DirKind = (DirKindIt == DirectiveKindMap.end())
? DK_NO_DIRECTIVE
@@ -5320,6 +5320,12 @@
}
void AsmParser::initializeDirectiveKindMap() {
+ /* Lookup will be done with the directive
+ * converted to lower case, so all these
+ * keys should be lower case.
+ * (target specific directives are handled
+ * elsewhere)
+ */
DirectiveKindMap[".set"] = DK_SET;
DirectiveKindMap[".equ"] = DK_EQU;
DirectiveKindMap[".equiv"] = DK_EQUIV;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72686.238728.patch
Type: text/x-patch
Size: 1800 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200117/e2f0963e/attachment-0001.bin>
More information about the llvm-commits
mailing list