Richard Biener <richard.guent...@gmail.com> writes: > On Thu, Apr 30, 2015 at 2:08 PM, Andreas Schwab <sch...@linux-m68k.org> wrote: >> Richard Sandiford <richard.sandif...@arm.com> writes: >> >>> Andreas Schwab <sch...@linux-m68k.org> writes: >>>> Richard Sandiford <richard.sandif...@arm.com> writes: >>>> >>>>> /* Represents a test and the action that should be taken on the result. >>>>> If a transition exists for the test outcome, the machine switches >>>>> to the transition's target state. If no suitable transition exists, >>>>> the machine either falls through to the next decision or, if there are >>>>> no >>>>> more decisions to try, fails the match. */ >>>>> struct decision : list_head <transition> >>>>> { >>>>> decision (const test &); >>>>> >>>>> void set_parent (list_head <decision> *s); >>>>> bool if_statement_p (uint64_t * = 0) const; >>>>> >>>>> /* The state to which this decision belongs. */ >>>>> state *s; >>>>> >>>>> /* Links to other decisions in the same state. */ >>>>> decision *prev, *next; >>>>> >>>>> /* The test to perform. */ >>>>> struct test test; >>>>> }; >>>> >>>> ../../gcc/genrecog.c:1467: error: declaration of 'test decision::test' >>>> ../../gcc/genrecog.c:1051: error: changes meaning of 'test' from >>>> struct test' >>>> >>>> Bootstrap compiler is gcc 4.3.4. >>> >>> Bah. Does it like "::test test" instead of "struct test test"? >> >> Same error. > > You have to use a different name I believe (or -fpermissive).
Hmm, but then why does it work with more recent compilers? Thanks, Richard