move findArrayDimensions to ScalarEvolution
[oota-llvm.git] / lib / Analysis / Delinearization.cpp
index 3623f30e52e449cf8232ed7d8cd462831cdd677f..1a588211a23f0f12c8f720031b807318256def6b 100644 (file)
@@ -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";