diff options
Diffstat (limited to 'polly/lib/Support/SCEVValidator.cpp')
| -rw-r--r-- | polly/lib/Support/SCEVValidator.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/polly/lib/Support/SCEVValidator.cpp b/polly/lib/Support/SCEVValidator.cpp index 2092047e92e..85bda185ec3 100644 --- a/polly/lib/Support/SCEVValidator.cpp +++ b/polly/lib/Support/SCEVValidator.cpp @@ -366,8 +366,16 @@ public: ValidatorResult visitUnknown(const SCEVUnknown *Expr) { Value *V = Expr->getValue(); - if (!(Expr->getType()->isIntegerTy() || Expr->getType()->isPointerTy())) { - DEBUG(dbgs() << "INVALID: UnknownExpr is not an integer or pointer type"); + // TODO: FIXME: IslExprBuilder is not capable of producing valid code + // for arbitrary pointer expressions at the moment. Until + // this is fixed we disallow pointer expressions completely. + if (Expr->getType()->isPointerTy()) { + DEBUG(dbgs() << "INVALID: UnknownExpr is a pointer type [FIXME]"); + return ValidatorResult(SCEVType::INVALID); + } + + if (!Expr->getType()->isIntegerTy()) { + DEBUG(dbgs() << "INVALID: UnknownExpr is not an integer"); return ValidatorResult(SCEVType::INVALID); } |

