If SI->size() is 0, we are not allowed to dereference ->begin().

This fixed PR3078.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59416 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Torok Edwin
2008-11-16 17:21:25 +00:00
parent 684bd46a57
commit b079a391c8

View File

@ -565,9 +565,11 @@ Function *ArgPromotion::DoPromotion(Function *F,
// Add a parameter to the function for each element passed in.
for (ScalarizeTable::iterator SI = ArgIndices.begin(),
E = ArgIndices.end(); SI != E; ++SI) {
unsigned num = SI->size();
// not allowed to dereference ->begin() if size() is 0
Params.push_back(GetElementPtrInst::getIndexedType(I->getType(),
&*SI->begin(),
SI->size()));
num ? &*SI->begin(): 0,
num));
assert(Params.back());
}