#141 fix for bug #274088


a support/reggression/tests file and a fix
for bug
[ 2740884 ] Incorrect assignment in array of structs

loopreversal was erronously applied, due to a missing check
in function isConformingBody()
for case PTR_OP


  • Robert Larice

    Robert Larice - 2009-06-07

    fix for bug #274088

  • Robert Larice

    Robert Larice - 2009-06-08

    I'd like to withdraw my first patch,
    and thanks to Jan Waclawek,
    replace it with an extended version.

    in isConfirmingBody()
    the cases for INC_OP and DEC_OP
    have to be extended as well.
    furthermore i've added some asserts,
    and fixed an ugly typo, which by mere luck
    never made a difference.
    apart from that I'd like to ask for reconsidering the whole business of this loop optimization.
    replacing isConfirmingBody with a mere
    !astHasSymbol(body, loopvarsymbol) && islocal(loopvarsymbol)
    would almost be the same thing, but much easier to understand.

    adding an optimization which tries to prove that the
    for-loops conditional expression is always TRUE for the first run,
    and then move the conditional to the end of the loop
    seems to me of higher value. (avoids double jumping for every iteration)

  • Borut Ražem

    Borut Ražem - 2009-07-18
    • assigned_to: nobody --> borutr
    • status: open --> closed-accepted
  • Borut Ražem

    Borut Ražem - 2009-07-18

    Patch applied in svn revision #5477.



Log in to post a comment.