aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-01-03 01:25:31 +0000
committerChris Lattner <sabre@nondot.org>2008-01-03 01:25:31 +0000
commit9848ced5d0eec8cbc44f9fbe5ce273189b0b9b2b (patch)
tree1590ee6cf92e3ed70c01c7519b288035343ddeb9
parent50cffa01076a2364dc593ebbfeacf8c5bd4d3f42 (diff)
don't access element zero of an array of size zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45526 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/MachineRegisterInfo.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/MachineRegisterInfo.h b/include/llvm/CodeGen/MachineRegisterInfo.h
index 81eb69414a..8af42b7cf5 100644
--- a/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -108,10 +108,10 @@ public:
unsigned createVirtualRegister(const TargetRegisterClass *RegClass) {
assert(RegClass && "Cannot create register without RegClass!");
// Add a reg, but keep track of whether the vector reallocated or not.
- void *ArrayBase = &VRegInfo[0];
+ void *ArrayBase = VRegInfo.empty() ? 0 : &VRegInfo[0];
VRegInfo.push_back(std::make_pair(RegClass, (MachineOperand*)0));
- if (&VRegInfo[0] == ArrayBase)
+ if (&VRegInfo[0] == ArrayBase || VRegInfo.size() == 1)
return getLastVirtReg();
// Otherwise, the vector reallocated, handle this now.