[I couldn't find a patch submission address for ICL, so I'm sending this here]
With ICL enabled and an LTO boot strap the ICL build always errors out due to -Werror=maybe-undefined. The following patch fixes the LTO build for me by initializing the variables in question. All warnings were false positives as far as I can tell. diff -u isl-0.12.2/isl_map_simplify.c-o isl-0.12.2/isl_map_simplify.c --- isl-0.12.2/isl_map_simplify.c-o 2014-07-08 08:14:40.770984188 -0700 +++ isl-0.12.2/isl_map_simplify.c 2014-07-08 08:15:32.370982573 -0700 @@ -3004,7 +3004,7 @@ for (i = 0; i < bmap->n_div; ++i) { int pos, neg; - int last_pos, last_neg; + int last_pos = 0, last_neg = 0; int redundant; int defined; diff -u isl-0.12.2/isl_ast.c-o isl-0.12.2/isl_ast.c --- isl-0.12.2/isl_ast.c-o 2014-07-08 08:02:23.375007276 -0700 +++ isl-0.12.2/isl_ast.c 2014-07-08 08:03:25.403005334 -0700 @@ -170,6 +170,9 @@ break; case isl_ast_expr_error: dup = NULL; + break; + default: + return NULL; } if (!dup) diff -u isl-0.12.2/basis_reduction_templ.c-o isl-0.12.2/basis_reduction_templ.c --- isl-0.12.2/basis_reduction_templ.c-o 2014-07-08 08:13:05.178987181 -0700 +++ isl-0.12.2/basis_reduction_templ.c 2014-07-08 08:13:45.374985923 -0700 @@ -54,7 +54,7 @@ int i; GBR_LP *lp = NULL; GBR_type F_old, alpha, F_new; - int row; + int row = 0; isl_int tmp; struct isl_vec *b_tmp; GBR_type *F = NULL; diff -u isl-0.12.2/isl_tab.c-o isl-0.12.2/isl_tab.c --- isl-0.12.2/isl_tab.c-o 2014-07-08 08:09:55.782993111 -0700 +++ isl-0.12.2/isl_tab.c 2014-07-08 08:11:45.694989670 -0700 @@ -2686,7 +2686,7 @@ n_marked++; } while (n_marked) { - struct isl_tab_var *var; + struct isl_tab_var *var = NULL; int sgn; for (i = tab->n_redundant; i < tab->n_row; ++i) { var = isl_tab_var_from_row(tab, i); @@ -2886,7 +2886,7 @@ n_marked++; } while (n_marked) { - struct isl_tab_var *var; + struct isl_tab_var *var = NULL; int red; for (i = tab->n_redundant; i < tab->n_row; ++i) { var = isl_tab_var_from_row(tab, i); diff -u isl-0.12.2/isl_sample.c-o isl-0.12.2/isl_sample.c --- isl-0.12.2/isl_sample.c-o 2014-07-08 08:13:51.558985729 -0700 +++ isl-0.12.2/isl_sample.c 2014-07-08 08:14:26.446984637 -0700 @@ -1443,7 +1443,7 @@ __isl_give isl_point *isl_set_sample_point(__isl_take isl_set *set) { int i; - isl_point *pnt; + isl_point *pnt = NULL; if (!set) return NULL; diff -u isl-0.12.2/isl_tab_pip.c-o isl-0.12.2/isl_tab_pip.c --- isl-0.12.2/isl_tab_pip.c-o 2014-07-08 08:11:54.950989380 -0700 +++ isl-0.12.2/isl_tab_pip.c 2014-07-08 08:12:55.794987475 -0700 @@ -2156,7 +2156,7 @@ int split; int row; int best = -1; - int best_r; + int best_r = -1; if (isl_tab_extend_cons(context_tab, 2) < 0) return -1; -- a...@linux.intel.com -- Speaking for myself only.