MIR Parser: Return true on error when parsing standalone registers.

llvm-svn: 245384
This commit is contained in:
Alex Lorenz 2015-08-18 22:57:36 +00:00
parent f3630113cd
commit 607efb6c7e
2 changed files with 26 additions and 2 deletions

View File

@ -647,7 +647,7 @@ bool MIParser::parseStandaloneNamedRegister(unsigned &Reg) {
if (Token.isNot(MIToken::NamedRegister))
return error("expected a named register");
if (parseRegister(Reg))
return 0;
return true;
lex();
if (Token.isNot(MIToken::Eof))
return error("expected end of string after the register reference");
@ -659,7 +659,7 @@ bool MIParser::parseStandaloneVirtualRegister(unsigned &Reg) {
if (Token.isNot(MIToken::VirtualRegister))
return error("expected a virtual register");
if (parseRegister(Reg))
return 0;
return true;
lex();
if (Token.isNot(MIToken::Eof))
return error("expected end of string after the register reference");

View File

@ -0,0 +1,24 @@
# RUN: not llc -march=x86-64 -start-after machine-sink -stop-after machine-sink -o /dev/null %s 2>&1 | FileCheck %s
--- |
define i32 @test(i32 %a) {
body:
ret i32 %a
}
...
---
name: test
isSSA: true
tracksRegLiveness: true
registers:
- { id: 0, class: gr32 }
liveins:
# CHECK: [[@LINE+1]]:13: unknown register name 'register'
- { reg: '%register', virtual-reg: '%0' }
body: |
bb.0.body:
liveins: %edi
%0 = COPY %edi
%eax = COPY %0
RETQ %eax
...