[patch 3/3] Fortran modules namespaces [rediff]

Tom Tromey tromey@redhat.com
Tue Jun 1 22:01:00 GMT 2010


>>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:

Jan> Small update due to the checked-in `[patch 1/3] Make obconcat use stdarg'.

Thanks.  I'm sorry about the long delay in reviewing this.

Jan> This case sensitivy problem is a bug of all of gdb, gfortran, PGF
Jan> and iFort, filed as GDB PR fortran/11560 and GCC PR debug/43950.

Yeah, and Pascal.

Jan> There has to be made a decision how to make fully-qualified reference of
Jan> symbols in modules.  Fortran language itself must always import any such
Jan> symbol into the local namespace.  C++ uses just "::" for such case.
Jan> iDB (Intel Debugger) uses character `
[...]
Jan> As GDB prints just "void" (or "VOID") on "$any$garbage" the
Jan> character $ is not usable and I have chosen '.  If there are no
Jan> concerns about some compatibility with iDB I would vote for "::".

I think that if there is no choice arising from the language (I don't
know Fortran) then it is up to you.

Jan> --- a/gdb/cp-namespace.c
Jan> +++ b/gdb/cp-namespace.c
Jan> @@ -32,6 +32,7 @@
Jan>  #include "command.h"
Jan>  #include "frame.h"
Jan>  #include "buildsym.h"
Jan> +#include "language.h"

Jan>  static struct symbol *lookup_namespace_scope (const char *name,
Jan>  					      const struct block *block,
Jan> @@ -260,6 +261,15 @@ cp_lookup_symbol_in_namespace (const char *namespace,
Jan>      {
Jan>        return lookup_symbol_file (name, block, domain, 0);
Jan>      }
Jan> +  else if (current_language->la_language == language_fortran)

I don't think we should introduce uses of current_language into this code.
It should probably just be an argument.

Tom



More information about the Gdb-patches mailing list