mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 04:18:56 +08:00
c-lex.c (init_c_lex): Request #define / #undef callbacks for verbose DWARF[2] debugging.
* c-lex.c (init_c_lex): Request #define / #undef callbacks for verbose DWARF[2] debugging. (cb_define, cb_undef): The new callbacks. * toplev.h (debug_define, debug_undef): Make const correct. * toplev.c (debug_define, debug_undef): Similarly. Do not perform the verbosity tests here anymore. From-SVN: r38756
This commit is contained in:
parent
f759eb8bf0
commit
65289a3a42
@ -1,3 +1,12 @@
|
||||
2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* c-lex.c (init_c_lex): Request #define / #undef callbacks
|
||||
for verbose DWARF[2] debugging.
|
||||
(cb_define, cb_undef): The new callbacks.
|
||||
* toplev.h (debug_define, debug_undef): Make const correct.
|
||||
* toplev.c (debug_define, debug_undef): Similarly. Do not
|
||||
perform the verbosity tests here anymore.
|
||||
|
||||
2001-01-07 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* reload.c (subst_reloads): Take INSN argument. When
|
||||
|
28
gcc/c-lex.c
28
gcc/c-lex.c
@ -92,6 +92,8 @@ static int dump_one_header PARAMS ((splay_tree_node, void *));
|
||||
static void cb_ident PARAMS ((cpp_reader *, const cpp_string *));
|
||||
static void cb_file_change PARAMS ((cpp_reader *, const cpp_file_change *));
|
||||
static void cb_def_pragma PARAMS ((cpp_reader *));
|
||||
static void cb_define PARAMS ((cpp_reader *, cpp_hashnode *));
|
||||
static void cb_undef PARAMS ((cpp_reader *, cpp_hashnode *));
|
||||
|
||||
const char *
|
||||
init_c_lex (filename)
|
||||
@ -123,6 +125,14 @@ init_c_lex (filename)
|
||||
parse_in->cb.file_change = cb_file_change;
|
||||
parse_in->cb.def_pragma = cb_def_pragma;
|
||||
|
||||
/* Set the debug callbacks if we can use them. */
|
||||
if (debug_info_level == DINFO_LEVEL_VERBOSE
|
||||
&& (write_symbols == DWARF_DEBUG || write_symbols == DWARF2_DEBUG))
|
||||
{
|
||||
parse_in->cb.define = cb_define;
|
||||
parse_in->cb.undef = cb_undef;
|
||||
}
|
||||
|
||||
if (filename == 0 || !strcmp (filename, "-"))
|
||||
filename = "stdin";
|
||||
|
||||
@ -317,6 +327,24 @@ cb_def_pragma (pfile)
|
||||
}
|
||||
}
|
||||
|
||||
/* #define callback for DWARF and DWARF2 debug info. */
|
||||
static void
|
||||
cb_define (pfile, node)
|
||||
cpp_reader *pfile;
|
||||
cpp_hashnode *node;
|
||||
{
|
||||
debug_define (lineno, (const char *) cpp_macro_definition (pfile, node));
|
||||
}
|
||||
|
||||
/* #undef callback for DWARF and DWARF2 debug info. */
|
||||
static void
|
||||
cb_undef (pfile, node)
|
||||
cpp_reader *pfile ATTRIBUTE_UNUSED;
|
||||
cpp_hashnode *node;
|
||||
{
|
||||
debug_undef (lineno, (const char *) node->name);
|
||||
}
|
||||
|
||||
/* Parse a '\uNNNN' or '\UNNNNNNNN' sequence.
|
||||
|
||||
[lex.charset]: The character designated by the universal-character-name
|
||||
|
20
gcc/toplev.c
20
gcc/toplev.c
@ -5109,44 +5109,40 @@ debug_end_source_file (lineno)
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Called from check_newline in c-parse.y. The `buffer' parameter contains
|
||||
/* Called from cb_define in c-lex.c. The `buffer' parameter contains
|
||||
the tail part of the directive line, i.e. the part which is past the
|
||||
initial whitespace, #, whitespace, directive-name, whitespace part. */
|
||||
|
||||
void
|
||||
debug_define (lineno, buffer)
|
||||
register unsigned lineno ATTRIBUTE_UNUSED;
|
||||
register char *buffer ATTRIBUTE_UNUSED;
|
||||
register const char *buffer ATTRIBUTE_UNUSED;
|
||||
{
|
||||
#ifdef DWARF_DEBUGGING_INFO
|
||||
if (debug_info_level == DINFO_LEVEL_VERBOSE
|
||||
&& write_symbols == DWARF_DEBUG)
|
||||
if (write_symbols == DWARF_DEBUG)
|
||||
dwarfout_define (lineno, buffer);
|
||||
#endif /* DWARF_DEBUGGING_INFO */
|
||||
#ifdef DWARF2_DEBUGGING_INFO
|
||||
if (debug_info_level == DINFO_LEVEL_VERBOSE
|
||||
&& write_symbols == DWARF2_DEBUG)
|
||||
if (write_symbols == DWARF2_DEBUG)
|
||||
dwarf2out_define (lineno, buffer);
|
||||
#endif /* DWARF2_DEBUGGING_INFO */
|
||||
}
|
||||
|
||||
/* Called from check_newline in c-parse.y. The `buffer' parameter contains
|
||||
/* Called from cb_undef in c-lex.c. The `buffer' parameter contains
|
||||
the tail part of the directive line, i.e. the part which is past the
|
||||
initial whitespace, #, whitespace, directive-name, whitespace part. */
|
||||
|
||||
void
|
||||
debug_undef (lineno, buffer)
|
||||
register unsigned lineno ATTRIBUTE_UNUSED;
|
||||
register char *buffer ATTRIBUTE_UNUSED;
|
||||
register const char *buffer ATTRIBUTE_UNUSED;
|
||||
{
|
||||
#ifdef DWARF_DEBUGGING_INFO
|
||||
if (debug_info_level == DINFO_LEVEL_VERBOSE
|
||||
&& write_symbols == DWARF_DEBUG)
|
||||
if (write_symbols == DWARF_DEBUG)
|
||||
dwarfout_undef (lineno, buffer);
|
||||
#endif /* DWARF_DEBUGGING_INFO */
|
||||
#ifdef DWARF2_DEBUGGING_INFO
|
||||
if (debug_info_level == DINFO_LEVEL_VERBOSE
|
||||
&& write_symbols == DWARF2_DEBUG)
|
||||
if (write_symbols == DWARF2_DEBUG)
|
||||
dwarf2out_undef (lineno, buffer);
|
||||
#endif /* DWARF2_DEBUGGING_INFO */
|
||||
}
|
||||
|
@ -39,8 +39,8 @@ extern char *file_name_nondirectory PARAMS ((const char *));
|
||||
extern void print_time PARAMS ((const char *, long));
|
||||
extern void debug_start_source_file PARAMS ((const char *));
|
||||
extern void debug_end_source_file PARAMS ((unsigned));
|
||||
extern void debug_define PARAMS ((unsigned, char *));
|
||||
extern void debug_undef PARAMS ((unsigned, char *));
|
||||
extern void debug_define PARAMS ((unsigned, const char *));
|
||||
extern void debug_undef PARAMS ((unsigned, const char *));
|
||||
extern int debug_ignore_block PARAMS ((union tree_node *));
|
||||
extern void fatal PARAMS ((const char *, ...))
|
||||
ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
|
||||
|
Loading…
Reference in New Issue
Block a user