GCC-3.2.2 bootstrap FAILURE: 1 reduce/reduce conflict in objc-parse.y

Raja R Harinath harinath@cs.umn.edu
Tue Jan 28 00:09:00 GMT 2003


Hi,

Gabriel Dos Reis <gdr@integrable-solutions.net> writes:

> Paolo Carlini <pcarlini@unitus.it> writes:
>
> | Gabriel Dos Reis wrote:
> | 
> | >Could anyone bootstrap with Bison 1.875?
> | >
> | Just tried for you, Gaby: definitely Bison 1.875 is not ok for Objc!
>
> Thanks!
>
> I don't know whether this is a bug in objc-parse.y or a bug in Bison
> 1.875. I'll make a release note unless someone comes with a fix.

See 

  objc/9267: bison 1.875 doesn't like reduce/reduce errors with %expect N

It is a bug in 'objc-parse.y' (a misuse of %expect).  There has
been a reduce/reduce conflict in that file for quite some time.  The
comment even says so (c-parse.in):

  ifobjc
  %expect 32 /* shift/reduce conflicts, and 1 reduce/reduce conflict.  */
  end ifobjc

However, %expect, among other things, means "exactly 0 reduce/reduce
conflicts".

Older versions of bison correctly warned about finding reduce/reduce
conflicts -- thus defeating the only purpose of the %expect: avoid
warnings.

Bison 1.875 escalated the warning to an error.  The CVS version of
bison has de-escalated this back to a warning.

The correct fix to the bug: kill the %expect line in objc-parse.y.
This will have no functional change.  There was a warning before, and
there'll be a warning now, when you process objc-parse.y.  Only now,
you aren't claiming things that aren't true.

- Hari
-- 
Raja R Harinath ------------------------------ harinath@cs.umn.edu



More information about the Gcc-bugs mailing list