Currently llvm-mc just hangs inside infinite loop
while trying to parse file which has ".section .с" inside,
where section name is non-english character.
Patch fixes the issue.
In this patch I also moved content of non-english-characters.s
to test/MC/AsmParser/Inputs folder so that non-english-characters.s
becomes a single testcase for all invalid inputs containing non-english
symbols. That is convinent because llvm-mc otherwise tries
to parse and tokenize the whole testcase file with tools invocations and
it is harder to isolate the issue.
Differential revision: https://reviews.llvm.org/D38545
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314973
91177308-0d34-0410-b5e6-
96231b3b80d8
return false;
}
- while (true) {
+ while (!getParser().hasPendingError()) {
SMLoc PrevLoc = getLexer().getLoc();
if (getLexer().is(AsmToken::Comma) ||
getLexer().is(AsmToken::EndOfStatement))
--- /dev/null
+# 0bÑ
+# 0xÑ
+# .Ñ4
+# .XÑ
+# .1Ñ
+# .1eÑ
+# 0x.Ñ
+# 0x0pÑ
+.intel_syntax
+# 1Ñ
--- /dev/null
+.section .ñ
-# RUN: llvm-mc -triple i386-linux-gnu -filetype=obj -o %t %s
+# RUN: llvm-mc -triple i386-linux-gnu -filetype=obj -o %t \
+# RUN: %S/Inputs/non-english-characters-comments.s
# RUN: llvm-readobj %t | FileCheck %s
# CHECK: Format: ELF32-i386
-# 0bÑ
-# 0xÑ
-# .Ñ4
-# .XÑ
-# .1Ñ
-# .1eÑ
-# 0x.Ñ
-# 0x0pÑ
-.intel_syntax
-# 1Ñ
+# RUN: not llvm-mc -triple i386-linux-gnu -filetype=obj -o %t \
+# RUN: %S/Inputs/non-english-characters-section-name.s 2>&1 | \
+# RUN: FileCheck %s --check-prefix=ERR
+# ERR: invalid character in input