summaryrefslogtreecommitdiffstats
path: root/polly/lib/Support/SCEVValidator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/Support/SCEVValidator.cpp')
-rw-r--r--polly/lib/Support/SCEVValidator.cpp12
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);
}
OpenPOWER on IntegriCloud