This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[GSoC] A bug related to induction variables and blocks


If we try to generate code from the following ISL AST:

{
  for (int c1 = 0; c1 < k.3; c1 += 1) {
    S_21(c1);
    S_21(c1);
    S_4(c1);
    for (int c3 = 0; c3 < pretmp; c3 += 1)
      S_5(c1, c3);
    S_7(c1);
    S_26(c1);
    S_8(c1);
    S_8(c1);
    S_9(c1);
    for (int c3 = 0; c3 < pretmp; c3 += 1)
      S_10(c1, c3);
    S_11(c1);
    S_25(c1);
    S_13(c1);
    S_13(c1);
    S_14(c1);
    for (int c3 = 0; c3 < pretmp; c3 += 1)
      S_15(c1, c3);
    S_16(c1);
    S_24(c1);
    S_18(c1);
  }
  S_19();
}

we'll get the following error:

isl_ctx.c:172: isl_ctx freed, but some objects still reference it

If I'm not mistaken, it is caused by missing of isl_id_free functions,
which should be called in the same quantity as isl_ast_expr_get_id
because of the implementation of ISL.

I've attached the patch, which may fix the problem. It also contains a
corresponding test case. Is it fine for trunk?


--
                                   Cheers, Roman Gareev.

Attachment: ChangeLog_entry.txt
Description: Text document

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]