diff options
Diffstat (limited to 'gdb/macrotab.h')
-rw-r--r-- | gdb/macrotab.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gdb/macrotab.h b/gdb/macrotab.h index eb546bccf7f..5ff36ea2cd6 100644 --- a/gdb/macrotab.h +++ b/gdb/macrotab.h @@ -72,6 +72,8 @@ struct bcache; /* A table of all the macro definitions for a given compilation unit. */ struct macro_table; +/* The definition of a single macro. */ +struct macro_definition; /* A source file that participated in a compilation unit --- either a main file, or an #included file. If a file is #included more than @@ -189,6 +191,11 @@ struct macro_source_file *macro_set_main (struct macro_table *table, /* Return the main source file of the macro table TABLE. */ struct macro_source_file *macro_main (struct macro_table *table); +/* Mark the macro table TABLE so that macros defined in this table can + be redefined without error. Note that it invalid to call this if + TABLE is allocated on an obstack. */ +void macro_allow_redefinitions (struct macro_table *table); + /* Record a #inclusion. Record in SOURCE's macro table that, at line number LINE in SOURCE, @@ -247,7 +254,6 @@ void macro_define_function (struct macro_source_file *source, int line, void macro_undef (struct macro_source_file *source, int line, const char *name); - /* Different kinds of macro definitions. */ enum macro_kind { @@ -298,5 +304,13 @@ struct macro_source_file *(macro_definition_location const char *name, int *definition_line)); +/* Callback function when walking a macro table. NAME is the name of + the macro, and DEFINITION is the definition. */ +typedef void (*macro_callback_fn) (const char *name, + const struct macro_definition *definition); + +/* Call the function FN for each macro in the macro table TABLE. */ +void macro_for_each (struct macro_table *table, macro_callback_fn fn); + #endif /* MACROTAB_H */ |