mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 09: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 = "\
|
const char *epilogue = "\
|
||||||
yystype;\n\
|
yystype;\n\
|
||||||
# define YYSTYPE yystype\n\
|
# define YYSTYPE yystype\n\
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1\n\
|
||||||
#endif\n";
|
#endif\n";
|
||||||
|
|
||||||
if (typed)
|
if (typed)
|
||||||
@@ -1617,12 +1618,16 @@ readgram (void)
|
|||||||
/* We used to use `unsigned long' as YYSTYPE on MSDOS,
|
/* We used to use `unsigned long' as YYSTYPE on MSDOS,
|
||||||
but it seems better to be consistent.
|
but it seems better to be consistent.
|
||||||
Most programs should declare their own type anyway. */
|
Most programs should declare their own type anyway. */
|
||||||
obstack_sgrow (&attrs_obstack,
|
obstack_sgrow (&attrs_obstack, "\
|
||||||
"#ifndef YYSTYPE\n#define YYSTYPE int\n#endif\n");
|
#ifndef YYSTYPE\n\
|
||||||
|
# define YYSTYPE int\n\
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1\n\
|
||||||
|
#endif\n");
|
||||||
if (defines_flag)
|
if (defines_flag)
|
||||||
obstack_sgrow (&defines_obstack, "\
|
obstack_sgrow (&defines_obstack, "\
|
||||||
# ifndef YYSTYPE\n\
|
# ifndef YYSTYPE\n\
|
||||||
# define YYSTYPE int\n\
|
# define YYSTYPE int\n\
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1\n\
|
||||||
# endif\n");
|
# endif\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2043,6 +2048,7 @@ typedef struct yyltype\n\
|
|||||||
} yyltype;\n\
|
} yyltype;\n\
|
||||||
\n\
|
\n\
|
||||||
# define YYLTYPE yyltype\n\
|
# define YYLTYPE yyltype\n\
|
||||||
|
# define YYLTYPE_IS_TRIVIAL 1\n\
|
||||||
#endif\n\
|
#endif\n\
|
||||||
\n");
|
\n");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user