From: Mehdi Amini Date: Wed, 14 Jan 2015 05:38:48 +0000 (+0000) Subject: Add assertions for out of bound index in ComputeLinearIndex X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=125de50e12b47557eeee20838a749de3a595a3bb Add assertions for out of bound index in ComputeLinearIndex git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225951 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/Analysis.cpp b/lib/CodeGen/Analysis.cpp index 06826b69827..2e8af9eb004 100644 --- a/lib/CodeGen/Analysis.cpp +++ b/lib/CodeGen/Analysis.cpp @@ -51,6 +51,7 @@ unsigned llvm::ComputeLinearIndex(Type *Ty, return ComputeLinearIndex(*EI, Indices+1, IndicesEnd, CurIndex); CurIndex = ComputeLinearIndex(*EI, nullptr, nullptr, CurIndex); } + assert(!Indices && "Unexpected out of bound"); return CurIndex; } // Given an array type, recursively traverse the elements. @@ -59,13 +60,13 @@ unsigned llvm::ComputeLinearIndex(Type *Ty, unsigned NumElts = ATy->getNumElements(); // Compute the Linear offset when jumping one element of the array unsigned EltLinearOffset = ComputeLinearIndex(EltTy, nullptr, nullptr, 0); - if (Indices && *Indices < NumElts) { + if (Indices) { + assert(*Indices < NumElts && "Unexpected out of bound"); // If the indice is inside the array, compute the index to the requested // elt and recurse inside the element with the end of the indices list CurIndex += EltLinearOffset* *Indices; return ComputeLinearIndex(EltTy, Indices+1, IndicesEnd, CurIndex); } - // Out of bound? Assert instead? CurIndex += EltLinearOffset*NumElts; return CurIndex; }