Am 2016-06-15 23:05, schrieb Bram Moolenaar:
Christian Brabandt wrote:

> Have you tried after patch 7.4.1939?  It fixes a problem where
> w_jumplistlen was overwritten with a line number.  Valgrind doesn't
> catch this because it's still within a struct.

I saw that patch, and it looks suspicious, but it was in a different
section of the file. It still fails after 7.4.1940

You mentioned w_jumplistlen went negative. I can't find any place where
w_jumplistlen might be set to a negative value.  And I don't think it
could happen by writing at w_jumplist[JUMPLISTSIZE] since we don't use
negative line numbers.

It doesn't get negative. It more looks like this whole check (mark.c:175)
    if (++curwin->w_jumplistlen > JUMPLISTSIZE)
    {
        curwin->w_jumplistlen = JUMPLISTSIZE;
        vim_free(curwin->w_jumplist[0].fname);
        for (i = 1; i < JUMPLISTSIZE; ++i)
            curwin->w_jumplist[i - 1] = curwin->w_jumplist[i];
    }

is never exexuted. In the debugger curwin->w_jumplistlen always is 0 so
here:
     fm = &curwin->w_jumplist[curwin->w_jumplistlen - 1];
it would read out of bounds.


Could it possibly be a compiler optimizer bug?

Possible. Are there some compiler flags, I can try?
Sorry, I don't know Microsofts Compiler settings very well.

Anyhow, I am pretty sure, this is caused by patch 7.4.1925.
So I'll try to find that part in the patch, that causes this.

Best,
Christian

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui