From a6624adaeec76c3b2d1ccb3a909c76261e417b19 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 18 Mar 2002 21:53:05 +0000 Subject: [PATCH] (parse_union_decl): Define YYSTYPE_IS_TRIVIAL if we use our YYSTYPE. It must be trivial, or our own union wouldn't be valid C++ anyway. (readgram): Define YYSTYPE_IS_TRIVIAL if it is int. (reader_output_yylsp): Define YYLTYPE_IS_TRIVIAL if we use our YYLTYPE. --- src/reader.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/reader.c b/src/reader.c index 0d950802..de16d91b 100644 --- a/src/reader.c +++ b/src/reader.c @@ -745,6 +745,7 @@ typedef union"; const char *epilogue = "\ yystype;\n\ # define YYSTYPE yystype\n\ +# define YYSTYPE_IS_TRIVIAL 1\n\ #endif\n"; if (typed) @@ -1617,12 +1618,16 @@ readgram (void) /* We used to use `unsigned long' as YYSTYPE on MSDOS, but it seems better to be consistent. Most programs should declare their own type anyway. */ - obstack_sgrow (&attrs_obstack, - "#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n"); + obstack_sgrow (&attrs_obstack, "\ +#ifndef YYSTYPE\n\ +# define YYSTYPE int\n\ +# define YYSTYPE_IS_TRIVIAL 1\n\ +#endif\n"); if (defines_flag) obstack_sgrow (&defines_obstack, "\ # ifndef YYSTYPE\n\ # define YYSTYPE int\n\ +# define YYSTYPE_IS_TRIVIAL 1\n\ # endif\n"); } @@ -2043,6 +2048,7 @@ typedef struct yyltype\n\ } yyltype;\n\ \n\ # define YYLTYPE yyltype\n\ +# define YYLTYPE_IS_TRIVIAL 1\n\ #endif\n\ \n"); }