On Tuesday 13 May 2008 11:20:16 Hans Aberg wrote:
> On 13 May 2008, at 10:53, Frans Englich wrote:
> > yyoverflow is undefined. Even undefined it to be sure.
>
> The file yacc.c has a segment looking like:
>    #ifdef yyoverflow
>       yyoverflow (YY_("memory exhausted"), ...
>
>    #else /* no yyoverflow */
>    # ifndef YYSTACK_RELOCATE
>        goto yyexhaustedlab;
>    # else
>    ...
> And only yyoverflow and yyexhaustedlab can cause "memory exhausted"
> be written.
>
> So if yyoverflow is undefined, for some reason, YYSTACK_RELOCATE is
> not defined. - I thought this was th default. So perhpas check if it
> is not a bug, and report to Bug-Bison.

It's not defined, and it seems to be caused by this piece:

if (! defined yyoverflow \
     && (! defined __cplusplus \
     || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
         && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

I fail in two ways here:

* I use C++ code, so __cplusplus is defined
* YYLTYPE_IS_TRIVIAL is defined to 0, although undefining it doesn't seem to 
break anything.

My YYSTYPE is a C++ class which has several public non-POD members.

YYLTYPE_IS_TRIVIAL is neither mentioned in the manual.


Cheers,

                Frans


_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to