diff options
author | Tom Tromey <tromey@redhat.com> | 2008-07-18 20:55:33 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2008-07-18 20:55:33 +0000 |
commit | d7d9f01ea18f14a9a1574042bd65dd73f9b6b2b8 (patch) | |
tree | 350b57eb105730c6e52b961f7c55b0821f6b222e /gdb/c-lang.c | |
parent | a9dc948127c2cb5127cec5ca87dbc19f17dd16cf (diff) | |
download | gdb-d7d9f01ea18f14a9a1574042bd65dd73f9b6b2b8.zip gdb-d7d9f01ea18f14a9a1574042bd65dd73f9b6b2b8.tar.gz gdb-d7d9f01ea18f14a9a1574042bd65dd73f9b6b2b8.tar.bz2 |
gdb
PR gdb/855:
* NEWS: Add entry for macro commands.
* Makefile.in (macrocmd.o): Add gdb_string.h.
* macroscope.h (user_macro_scope): Declare.
(default_macro_scope): Update documentation.
(macro_user_macros): Declare.
* c-lang.c (c_preprocess_and_parse): Always attempt macro lookup.
Use user_macro_scope.
(null_macro_lookup): Remove.
* macrotab.h (macro_callback_fn): Declare.
(macro_for_each): Likewise.
(macro_allow_redefinitions): Likewise.
* macrotab.c (foreach_macro): New function
(macro_for_each): Likewise.
(struct macro_table) <redef_ok>: New field.
(macro_allow_redefinitions): New function.
(new_macro_table): Update.
(macro_define_function): Likewise.
(macro_define_object): Likewise.
* macroscope.c (user_macro_scope): New function.
(default_macro_scope): Use it.
(macro_user_macros): New global.
(standard_macro_lookup): Look in macro_user_macros.
(_initialize_macroscope): New function.
* macroexp.h (macro_is_whitespace, macro_is_digit,
macro_is_identifier_nondigit): Declare.
* macroexp.c (macro_is_whitespace): Rename. No longer static.
(macro_is_digit): Likewise.
(macro_is_identifier_nondigit): Likewise.
(get_identifier): Update.
(get_pp_number): Likewise.
(get_token): Likewise.
* macrocmd.c (skip_ws): New function.
(extract_identifier): Likewise.
(free_macro_definition_ptr): Likewise.
(user_macros): Remove.
(macro_define_command): Implement.
(_initialize_macrocmd): Update.
(macro_undef_command): Implement.
(print_one_macro): New function.
(macro_list_command): Implement.
gdb/doc
* gdb.texinfo (Macros): Update. Use @code rather than @command.
gdb/testsuite
* gdb.base/macscp.exp: Add macro tests.
Diffstat (limited to 'gdb/c-lang.c')
-rw-r--r-- | gdb/c-lang.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 29aa765..9ce4bb9 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -261,13 +261,6 @@ macro_lookup_ftype *expression_macro_lookup_func; void *expression_macro_lookup_baton; -static struct macro_definition * -null_macro_lookup (const char *name, void *baton) -{ - return 0; -} - - static int c_preprocess_and_parse (void) { @@ -279,17 +272,11 @@ c_preprocess_and_parse (void) scope = sal_macro_scope (find_pc_line (expression_context_pc, 0)); else scope = default_macro_scope (); + if (! scope) + scope = user_macro_scope (); - if (scope) - { - expression_macro_lookup_func = standard_macro_lookup; - expression_macro_lookup_baton = (void *) scope; - } - else - { - expression_macro_lookup_func = null_macro_lookup; - expression_macro_lookup_baton = 0; - } + expression_macro_lookup_func = standard_macro_lookup; + expression_macro_lookup_baton = (void *) scope; gdb_assert (! macro_original_text); make_cleanup (scan_macro_cleanup, 0); |