diff options
Diffstat (limited to 'lib/Analysis/Delinearization.cpp')
-rw-r--r-- | lib/Analysis/Delinearization.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Analysis/Delinearization.cpp b/lib/Analysis/Delinearization.cpp index 3623f30e52..1a588211a2 100644 --- a/lib/Analysis/Delinearization.cpp +++ b/lib/Analysis/Delinearization.cpp @@ -109,13 +109,14 @@ void Delinearization::print(raw_ostream &O, const Module *) const { SmallVector<const SCEV *, 3> Subscripts, Sizes; const SCEV *Res = AR->delinearize(*SE, Subscripts, Sizes); - int Size = Subscripts.size(); - if (Res == AR || Size == 0) { + if (Res == AR || Subscripts.size() == 0 || Sizes.size() == 0 || + Subscripts.size() != Sizes.size()) { O << "failed to delinearize\n"; continue; } O << "Base offset: " << *Res << "\n"; O << "ArrayDecl[UnknownSize]"; + int Size = Subscripts.size(); for (int i = 0; i < Size - 1; i++) O << "[" << *Sizes[i] << "]"; O << " with elements of " << *Sizes[Size - 1] << " bytes.\n"; |