help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem finding cause of memory exhausted


From: Frans Englich
Subject: Re: Problem finding cause of memory exhausted
Date: Tue, 13 May 2008 11:41:30 +0200
User-agent: KMail/1.9.6

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]