From: Sven Verdoolaege Date: Fri, 25 Jun 2010 18:40:52 +0000 (+0200) Subject: isl_access_info_compute_flow: fix error handling X-Git-Tag: isl-0.03~50 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2076e37e0a284ab21253a465a086c08b8e014671;p=platform%2Fupstream%2Fisl.git isl_access_info_compute_flow: fix error handling --- diff --git a/isl_flow.c b/isl_flow.c index 5117b86..4b70e78 100644 --- a/isl_flow.c +++ b/isl_flow.c @@ -863,15 +863,25 @@ __isl_give isl_flow *isl_access_info_compute_flow(__isl_take isl_access_info *ac res = compute_mem_based_dependences(acc); else res = compute_val_based_dependences(acc); + if (!res) + return NULL; - for (j = 0; j < res->n_source; ++j) + for (j = 0; j < res->n_source; ++j) { res->dep[j].map = isl_map_project_out(res->dep[j].map, isl_dim_out, n_sink, n_data); + if (!res->dep[j].map) + goto error2; + } res->must_no_source = isl_set_project_out(res->must_no_source, isl_dim_set, n_sink, n_data); res->may_no_source = isl_set_project_out(res->may_no_source, isl_dim_set, n_sink, n_data); + if (!res->must_no_source || !res->may_no_source) + goto error2; return res; error: isl_access_info_free(acc); return NULL; +error2: + isl_flow_free(res); + return NULL; }