projects
/
platform
/
upstream
/
isl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
isl_basic_set_opt: avoid invalid access on error path
[platform/upstream/isl.git]
/
isl_lp.c
diff --git
a/isl_lp.c
b/isl_lp.c
index
1673b5b
..
28e317c
100644
(file)
--- a/
isl_lp.c
+++ b/
isl_lp.c
@@
-1,7
+1,7
@@
/*
* Copyright 2008-2009 Katholieke Universiteit Leuven
*
/*
* Copyright 2008-2009 Katholieke Universiteit Leuven
*
- * Use of this software is governed by the
GNU LGPLv2.1
license
+ * Use of this software is governed by the
MIT
license
*
* Written by Sven Verdoolaege, K.U.Leuven, Departement
* Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
*
* Written by Sven Verdoolaege, K.U.Leuven, Departement
* Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
@@
-13,6
+13,7
@@
#include "isl_lp_piplib.h"
#include <isl/seq.h>
#include "isl_tab.h"
#include "isl_lp_piplib.h"
#include <isl/seq.h>
#include "isl_tab.h"
+#include <isl_options_private.h>
enum isl_lp_result isl_tab_solve_lp(struct isl_basic_map *bmap, int maximize,
isl_int *f, isl_int denom, isl_int *opt,
enum isl_lp_result isl_tab_solve_lp(struct isl_basic_map *bmap, int maximize,
isl_int *f, isl_int denom, isl_int *opt,
@@
-27,7
+28,7
@@
enum isl_lp_result isl_tab_solve_lp(struct isl_basic_map *bmap, int maximize,
isl_seq_neg(f, f, 1 + dim);
bmap = isl_basic_map_gauss(bmap, NULL);
isl_seq_neg(f, f, 1 + dim);
bmap = isl_basic_map_gauss(bmap, NULL);
- tab = isl_tab_from_basic_map(bmap);
+ tab = isl_tab_from_basic_map(bmap
, 0
);
res = isl_tab_min(tab, f, denom, opt, opt_denom, 0);
if (res == isl_lp_ok && sol) {
*sol = isl_tab_get_sample_value(tab);
res = isl_tab_min(tab, f, denom, opt, opt_denom, 0);
if (res == isl_lp_ok && sol) {
*sol = isl_tab_get_sample_value(tab);
@@
-108,7
+109,7
@@
enum isl_lp_result isl_map_solve_lp(__isl_keep isl_map *map, int max,
if (map->p[i]->n_div > max_div)
max_div = map->p[i]->n_div;
if (max_div > 0) {
if (map->p[i]->n_div > max_div)
max_div = map->p[i]->n_div;
if (max_div > 0) {
- unsigned total = isl_
dim_total(map->dim
);
+ unsigned total = isl_
space_dim(map->dim, isl_dim_all
);
v = isl_vec_alloc(map->ctx, 1 + total + max_div);
if (!v)
return isl_lp_error;
v = isl_vec_alloc(map->ctx, 1 + total + max_div);
if (!v)
return isl_lp_error;