mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-10 04:43:03 +00:00
(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.
This commit is contained in:
10
src/reader.c
10
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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user