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

This fixed PR3078.

llvm-svn: 59416
This commit is contained in:
Torok Edwin 2008-11-16 17:21:25 +00:00
parent 66bb641598
commit f67e9bb406

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());
}