[llvm] r303985 - The fix for PR22004: X86AsmParser.cpp asserts: OperandStack.size() > 1 && "Too few operands."
Andrew V. Tischenko via llvm-commits
llvm-commits at lists.llvm.org
Fri May 26 06:23:34 PDT 2017
Author: avt77
Date: Fri May 26 08:23:34 2017
New Revision: 303985
URL: http://llvm.org/viewvc/llvm-project?rev=303985&view=rev
Log:
The fix for PR22004: X86AsmParser.cpp asserts: OperandStack.size() > 1 && "Too few operands."
Added:
llvm/trunk/test/MC/X86/pr22004.s
Modified:
llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=303985&r1=303984&r2=303985&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Fri May 26 08:23:34 2017
@@ -1316,16 +1316,17 @@ bool X86AsmParser::ParseIntelExpression(
while (!Done) {
bool UpdateLocLex = true;
+ AsmToken::TokenKind TK = getLexer().getKind();
// The period in the dot operator (e.g., [ebx].foo.bar) is parsed as an
// identifier. Don't try an parse it as a register.
- if (PrevTK != AsmToken::Error && Tok.getString().startswith("."))
+ if (PrevTK != AsmToken::Error && Tok.getString().startswith(".") &&
+ TK != AsmToken::Identifier)
break;
// If we're parsing an immediate expression, we don't expect a '['.
if (SM.getStopOnLBrac() && getLexer().getKind() == AsmToken::LBrac)
break;
- AsmToken::TokenKind TK = getLexer().getKind();
switch (TK) {
default: {
if (SM.isValidEndState()) {
Added: llvm/trunk/test/MC/X86/pr22004.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/pr22004.s?rev=303985&view=auto
==============================================================================
--- llvm/trunk/test/MC/X86/pr22004.s (added)
+++ llvm/trunk/test/MC/X86/pr22004.s Fri May 26 08:23:34 2017
@@ -0,0 +1,3 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s
+
+lea rax, qword ptr [rip + .L.str]
More information about the llvm-commits
mailing list