diff options
Diffstat (limited to 'polly/lib/Analysis')
-rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 73c7fec7bec..d43f26401d9 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -1168,14 +1168,18 @@ void Scop::addParameterBounds() { isl_id *Id; const SCEV *Scev; const IntegerType *T; + int Width; Id = isl_set_get_dim_id(Context, isl_dim_param, i); Scev = (const SCEV *)isl_id_get_user(Id); - T = dyn_cast<IntegerType>(Scev->getType()); isl_id_free(Id); - assert(T && "Not an integer type"); - int Width = T->getBitWidth(); + T = dyn_cast<IntegerType>(Scev->getType()); + + if (!T) + continue; + + Width = T->getBitWidth(); V = isl_val_int_from_si(IslCtx, Width - 1); V = isl_val_2exp(V); |