Re: Testsuite summary for GNU Bison 3.8.2 : FAIL 2

Akim Demaille <[email protected]> Wed, 13 Oct 2021 07:31:24 +0200
Newsgroups gmane.comp.parsers.bison.bugs
Message-ID <[email protected]>
Hi Dennis,

> Le 13 oct. 2021 à 00:19, Dennis Clarke <[email protected]> a écrit :
> 
> On 10/9/21 04:35, Akim Demaille wrote:
>> Hi Dennis,
>> 
>> Thanks for this bug report.
> 
> The least I can do.

:)

> You will love this :
> 
> p = 0x100104410
> (dbx) print *p
> *p = {
>    name  = 0x105bd0 "<bad address 0x0000000000105bd0>"
>    type  = 260
>    value = {
>        var = 2.1225218246347e-314
>        fun = 0x100103f00
>    }
>    next  = 0x1001043e0
> }
> (dbx) quit
> beta $

Well, maybe the problem is actually very simple: the sym_table pointer is not initialized to NULL by the compiler.  And as a matter of fact, it is probably right, I don't believe the C standard requires it to do it.  It is mandatory for static variables, but that's not the case here.

Could you look for the following lines in examples/c/mfcalc/mfcalc.y

/* The symbol table: a chain of 'struct symrec'. */
symrec *sym_table;

and turn it into this?

/* The symbol table: a chain of 'struct symrec'. */
symrec *sym_table = NULL;

That should do it.  Thanks!