diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2009-12-18 18:26:58 +0100 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2009-12-18 18:26:58 +0100 |
commit | 31e53ddde31056fb067f8d3ec1f9656d3b981b21 (patch) | |
tree | 0b43aaf5a49294132ea22c1e4024f89bec929713 /isl_constraint.c | |
parent | 309036cf4fb6d77a3287a8de8a9098c0a1211778 (diff) | |
download | isl-31e53ddde31056fb067f8d3ec1f9656d3b981b21.tar.gz isl-31e53ddde31056fb067f8d3ec1f9656d3b981b21.tar.bz2 isl-31e53ddde31056fb067f8d3ec1f9656d3b981b21.zip |
isl_constraint_dup: make sure line refers to equation in constraint's bmap
Diffstat (limited to 'isl_constraint.c')
-rw-r--r-- | isl_constraint.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/isl_constraint.c b/isl_constraint.c index 54b2c440..386cd27b 100644 --- a/isl_constraint.c +++ b/isl_constraint.c @@ -103,10 +103,19 @@ struct isl_constraint *isl_inequality_alloc(struct isl_dim *dim) struct isl_constraint *isl_constraint_dup(struct isl_constraint *c) { + struct isl_basic_map *bmap; + int i; + int eq; + if (!c) return NULL; - return isl_basic_map_constraint(isl_basic_map_copy(c->bmap), c->line); + eq = c->line < c->bmap->eq + c->bmap->n_eq; + i = eq ? c->line - c->bmap->eq : c->line - c->bmap->ineq; + bmap = isl_basic_map_copy(c->bmap); + if (!bmap) + return NULL; + return isl_basic_map_constraint(bmap, eq ? bmap->eq + i : bmap->ineq + i); } struct isl_constraint *isl_constraint_cow(struct isl_constraint *c) |