diff options
| author | Alex Lorenz <arphaman@gmail.com> | 2015-07-30 21:54:10 +0000 |
|---|---|---|
| committer | Alex Lorenz <arphaman@gmail.com> | 2015-07-30 21:54:10 +0000 |
| commit | a06c0c6401fd793cfbef1b15630a65d740ff4095 (patch) | |
| tree | ffa3b4f0960f7b79881939b0bde53a9d1296f056 /llvm/lib/CodeGen | |
| parent | ce3e7a614a537327cfb57e1918487ee8c0095b26 (diff) | |
| download | bcm5719-llvm-a06c0c6401fd793cfbef1b15630a65d740ff4095.tar.gz bcm5719-llvm-a06c0c6401fd793cfbef1b15630a65d740ff4095.zip | |
MIR Parser: Report an error when a virtual register is redefined.
llvm-svn: 243695
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIRParser.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp index a179c593380..7966f389d3e 100644 --- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp @@ -414,9 +414,11 @@ bool MIRParserImpl::initializeRegisterInfo(MachineFunction &MF, Twine("use of undefined register class '") + VReg.Class.Value + "'"); unsigned Reg = RegInfo.createVirtualRegister(RC); - // TODO: Report an error when the same virtual register with the same ID is - // redefined. - PFS.VirtualRegisterSlots.insert(std::make_pair(VReg.ID, Reg)); + if (!PFS.VirtualRegisterSlots.insert(std::make_pair(VReg.ID.Value, Reg)) + .second) + return error(VReg.ID.SourceRange.Start, + Twine("redefinition of virtual register '%") + + Twine(VReg.ID.Value) + "'"); if (!VReg.PreferredRegister.Value.empty()) { unsigned PreferredReg = 0; if (parseNamedRegisterReference(PreferredReg, SM, MF, |

