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

Reply via email to