diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 141b88ff4b..074b58704e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2002-06-19 Pierre Muller + + * parse.c (parse_fprintf): New function used to avoid calls to + fprintf in bison parser generated debug code. + * parser-defs.h: Declaration of new parse_fprintf function. + * ada-exp.y, c-exp.y, f-exp.y, jv-exp.y, m2-exp.y, p-exp.y: + Set YYDEBUG to 1 by default. + Set YYFPRINTF as parse_fprintf. + 2002-06-21 Michal Ludvig * dwarf2cfi.c (read_encoded_pointer): Don't handle pointer diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 7d46dd2cf8..67185a3e49 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -92,9 +92,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define yytoks ada_toks /* With YYDEBUG defined */ #ifndef YYDEBUG -#define YYDEBUG 0 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + struct name_info { struct symbol* sym; struct minimal_symbol* msym; diff --git a/gdb/c-exp.y b/gdb/c-exp.y index f555518ea0..ea5083646e 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -100,9 +100,11 @@ extern int hp_som_som_object_present; #define yycheck c_yycheck #ifndef YYDEBUG -#define YYDEBUG 0 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + int yyparse (void); static int yylex (void); diff --git a/gdb/f-exp.y b/gdb/f-exp.y index e11687726e..a26f019fe9 100644 --- a/gdb/f-exp.y +++ b/gdb/f-exp.y @@ -102,9 +102,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define yycheck f_yycheck #ifndef YYDEBUG -#define YYDEBUG 1 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + int yyparse (void); static int yylex (void); diff --git a/gdb/jv-exp.y b/gdb/jv-exp.y index 495bf3e053..f95de247b1 100644 --- a/gdb/jv-exp.y +++ b/gdb/jv-exp.y @@ -96,9 +96,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define yycheck java_yycheck #ifndef YYDEBUG -#define YYDEBUG 0 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + int yyparse (void); static int yylex (void); diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y index 772c6b7b28..707c9e2109 100644 --- a/gdb/m2-exp.y +++ b/gdb/m2-exp.y @@ -98,9 +98,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define yycheck m2_yycheck #ifndef YYDEBUG -#define YYDEBUG 0 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + int yyparse (void); static int yylex (void); diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 7333f6d04a..fbdd3f69e1 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -104,9 +104,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define yycheck pascal_yycheck #ifndef YYDEBUG -#define YYDEBUG 0 /* Default to no yydebug support */ +#define YYDEBUG 1 /* Default to yydebug support */ #endif +#define YYFPRINTF parser_fprintf + int yyparse (void); static int yylex (void); diff --git a/gdb/parse.c b/gdb/parse.c index bc81f221b5..c5de0af333 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -1366,6 +1366,23 @@ build_parse (void) NULL); } +/* This function avoids direct calls to fprintf + in the parser generated debug code. */ +void +parser_fprintf (FILE *x, const char *y, ...) +{ + va_list args; + va_start (args, y); + if (x == stderr) + vfprintf_unfiltered (gdb_stderr, y, args); + else + { + fprintf_unfiltered (gdb_stderr, " Unknown FILE used.\n"); + vfprintf_unfiltered (gdb_stderr, y, args); + } + va_end (args); +} + void _initialize_parse (void) { diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h index 7db1c77e12..062c34d54a 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -216,4 +216,9 @@ struct op_print extern int target_map_name_to_register (char *, int); +/* Function used to avoid direct calls to fprintf + in the code generated by the bison parser. */ + +extern void parser_fprintf (FILE *, const char *, ...) ATTR_FORMAT (printf, 2 ,3); + #endif /* PARSER_DEFS_H */