mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
X86 MC: Reject invalid segment registers before a memory operand colon
Previously we would execute unreachable during object emission. llvm-svn: 214456
This commit is contained in:
parent
751c622bb4
commit
2a45d5a920
@ -1632,6 +1632,9 @@ std::unique_ptr<X86Operand> X86AsmParser::ParseATTOperand() {
|
||||
if (getLexer().isNot(AsmToken::Colon))
|
||||
return X86Operand::CreateReg(RegNo, Start, End);
|
||||
|
||||
if (!X86MCRegisterClasses[X86::SEGMENT_REGRegClassID].contains(RegNo))
|
||||
return ErrorOperand(Start, "invalid segment register");
|
||||
|
||||
getParser().Lex(); // Eat the colon.
|
||||
return ParseMemOperand(RegNo, Start);
|
||||
}
|
||||
|
@ -46,3 +46,7 @@ movl %eax,(,%bx)
|
||||
|
||||
// 32: error: invalid operand for instruction
|
||||
outb al, 4
|
||||
|
||||
// 32: error: invalid segment register
|
||||
// 64: error: invalid segment register
|
||||
movl %eax:0x00, %ebx
|
||||
|
Loading…
Reference in New Issue
Block a user