diff options
-rw-r--r-- | lib/Target/X86/AsmParser/X86AsmParser.cpp | 4 | ||||
-rw-r--r-- | test/MC/X86/x86_errors.s | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index d91830f566..e05b50c57e 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -876,8 +876,10 @@ X86Operand *X86AsmParser::ParseMemOperand(unsigned SegReg, SMLoc MemStart) { SMLoc Loc = Parser.getTok().getLoc(); int64_t ScaleVal; - if (getParser().ParseAbsoluteExpression(ScaleVal)) + if (getParser().ParseAbsoluteExpression(ScaleVal)){ + Error(Loc, "expected scale expression"); return 0; + } // Validate the scale amount. if (ScaleVal != 1 && ScaleVal != 2 && ScaleVal != 4 && ScaleVal != 8){ diff --git a/test/MC/X86/x86_errors.s b/test/MC/X86/x86_errors.s index 8de7444ea6..8f2e1af40b 100644 --- a/test/MC/X86/x86_errors.s +++ b/test/MC/X86/x86_errors.s @@ -20,3 +20,7 @@ movl 0(%rax), 0(%edx) // error: invalid operand for instruction // 32: error: instruction requires a CPU feature not currently enabled sysexitq + +// rdar://10710167 +// 64: error: expected scale expression +lea (%rsp, %rbp, $4), %rax |