From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-07-07 09:29:49


At 03:43 AM 7/7/2003, Vladimir Prus wrote:

>Hi Beman,
>
>Beman Dawes wrote:
>> The problem is an access violation reading location 0x0000001c. It
always
>> happens at the same place in the code, line 570 of make1.c. The line of
>> code reads:
>>
>> if (t->includes) {
>
>That's interesting. The line of code in question is very new --- added
for
>V2 M5. So it's possibly a new bug.
>
>However, I have no idea how "t" can be incorrect here. Two considerations
>1. The line
> t = t->original_target
> above may cause the problem. OTOH, t->original_target is always
> correctly initialized.

I added an assert:

if (t->flags & T_FLAG_INTERNAL) {
assert( t->original_target );
t = t->original_target;
}

/* Clean current includes */
if (t->includes) {
t->includes = 0;
}

The assert does fail, after around 30 seconds of 100% CPU activity.

--Beman