Jan Nieuwenhuizen <jann...@gnu.org> writes:

> Hi Matt!
>
> When I use Nyacc to parse things like
>
>      #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
>      # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
>      #else
>      # define _GL_ATTRIBUTE_PURE /* empty */
>      #endif
>
> I get
>
>     foo.c:1: undefined identifier: "__GNUC__"
>     foo.c:1: CPP error

This looks like a problem in Nyacc.  Within the condition of an "#if" or
"#elif" preprocessor form, after macro expansion is performed, all
remaining identifiers are replaced with 0.  See section 6.10.1
(Conditional inclusion) paragraph 4 of C99.

      Mark

Reply via email to