From: Paul Eggert Date: Mon, 18 Mar 2002 21:53:05 +0000 (+0000) Subject: (parse_union_decl): Define YYSTYPE_IS_TRIVIAL if we use our YYSTYPE. X-Git-Tag: BISON-1_34a~13 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/a6624adaeec76c3b2d1ccb3a909c76261e417b19?ds=sidebyside (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. --- 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"); }