[Top][All Lists]
[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