This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: PR 2484: completion of macro names


On Tuesday 30 September 2008 17:07:49, Tom Tromey wrote:

> Fortran allows macro expansion now.  I did not change this, because it
> also requires changes to the Fortran lexer in gdb.  I think that is
> outside the scope of this patch.  Perhaps a Fortran maintainer could
> implement it.

Certainly.  Thanks for the clarifications.

> +    /* Style of macro expansion, if any, supported by this language.  */
> +    enum macro_expansion la_macro_expansion : 1;

Left over ` : 1'.

> +      /* Add any macros visible in the default scope.  Note that this
> +	 may yield the occasional wrong result, because an expression
> +	 might be evaluated in a scope other than the default.  For
> +	 example, if the user types "break file:line if <TAB>", the
> +	 resulting expression will be evaluated at "file:line" -- but
> +	 at there does not seem to be a way to detect this at
> +	 completion time.  */
> +      scope = default_macro_scope ();

Ah, thanks.  This isn't much different from local symbols,
which we use the selected frame/block.

:REVIEWMAIL:

Looks OK to me.  Thanks again for doing this.

> 2008-09-30  Tom Tromey  <tromey@redhat.com>
> 
>         PR gdb/2484:
>         * symtab.c (struct add_macro_name_data): New struct.
>         (add_macro_name): New function.
>         (default_make_symbol_completion_list): Complete macro names.
>         * scm-lang.c (scm_language_defn): Update.
>         * p-lang.c (pascal_language_defn): Update.
>         * objc-lang.c (objc_language_defn): Update.
>         * macrotab.h (macro_callback_fn): Add user_data argument.
>         (macro_for_each): Likewise.
>         (macro_for_each_in_scope): Declare.
>         * macrotab.c: (struct macro_for_each_data): New struct.
>         (foreach_macro): Use it.
>         (macro_for_each): Likewise.
>         (foreach_macro_in_scope): New function.
>         (macro_for_each_in_scope): Likewise.
>         * macrocmd.c (print_one_macro): Add argument.
>         (macro_list_command): Pass NULL to macro_for_each.
>         * m2-lang.c (m2_language_defn): Update.
>         * language.h (struct language_defn) <la_macro_expansion>: New
>         field.
>         (macro_expansion): New enum.
>         * language.c (unknown_language_defn): Update.  Fix order of
>         initializers.
>         (auto_language_defn): Likewise.
>         (local_language_defn): Update.
>         * jv-lang.c (java_language_defn): Update.
>         * f-lang.c (f_language_defn): Update.
>         * c-lang.c (c_language_defn): Update.
>         (cplus_language_defn): Likewise.
>         (asm_language_defn): Likewise.
>         (minimal_language_defn): Likewise.
>         * ada-lang.c (ada_language_defn): Update.
> 
> 2008-09-30  Tom Tromey  <tromey@redhat.com>
> 
>         * gdb.base/macscp.exp: Add completion tests.
>         * gdb.base/macscp1.c (FIFTY_SEVEN): New macro.
>         (TWENTY_THREE): Likewise.
>         (FORTY_EIGHT): Likewise.
> 

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]