Re: Assertion failure in AnnotationList.c on IELR grammar with a useless nonterminal

Akim Demaille <[email protected]>
Newsgroups gmane.comp.parsers.bison.bugs
Message-ID <[email protected]>
Hi Dwight,

> Le 17 déc. 2020 à 00:09, Dwight Guth <[email protected]> a écrit :
> 
> I have reproduced this error with Bison 3.7.4, but it is also present
> in versions as old as 3.0.4, the oldest version I have tried.

Wow...

> Note that the terminal output mentions that C is a useless
> nonterminal, but if C is removed from the grammar, the error
> disappears. While I am aware that the problem could be solved by
> simply removing the useless nonterminal from the grammar (and have
> been able to reproduce this behavior on my real-world example), the
> real-world grammar is autogenerated and it would be nice if this just
> worked and the useless nonterminal was ignored. Regardless, I figured
> an assertion error is probably not an appropriate failure mode, so I
> wanted to report the error to you.

Yes, this is definitely not expected, thanks a lot for the (complete)
report!


> We have plans to modify our grammar generator on our end to fix the
> issue in the way I described above, so this is not terribly high
> priority for us, since by the time bison releases trickle out into
> Linux distros, we will have already worked around the issue. But I
> have seen this same error message in other contexts in the past, so
> it's possible we may run into it again in a situation where it will be
> harder for us to simply work around it, so a fix would still be
> helpful to us long-term.

I will not work on this immediately (I expect this one to be tricky,
and I have ongoing business in Bison I'd like to finish first), but
this is definitely in the TODO list.

> I should have already completed a copyright assignment form that is
> applicable for changes to Bison, and am happy to follow any steps you
> have in mind in order to incorporate this minimized test into your
> test suite. Just let me know what you need.

I believe your test case is small enough so that we can call it
"trivial" (although, I agree, finding it was not), and therefore
I can use it as a contributions of yours that does not require
paperwork.  If, however, you'd like to contribute to Bison (for
instance there's a bug report about IELR that has just arrived :-),
you'll have to sign these papers.

Cheers!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.