This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: More "catch assert" Ada failures
On Mon, Jun 04, 2007 at 02:31:54PM -0700, Joel Brobecker wrote:
> With the help of Eric Botcazou, we determined GCC built straight from
> the FSF tree follows our encoding, and thus does not have the "__"
> replaced by dots. So it looks like it's something that the Debian
> version of GCC might be doing differently. Apparently, the name
> attribute generation is generated by:
>
> /* Generate a DW_AT_name attribute given some string value to be included as
> the value of the attribute. */
>
> static void
> add_name_attribute (dw_die_ref die, const char *name_string)
> {
> if (name_string != NULL && *name_string != 0)
> {
> if (demangle_name_func)
> name_string = (*demangle_name_func) (name_string);
>
> add_AT_string (die, DW_AT_name, name_string);
> }
> }
>
> In our case (GNAT compiler), demangle_name_func is NULL, so we
> emit the encoded name without any modification. Maybe that's
> where Debian GCC does things differently?
It's got to be something else; nothing in this package calls
dwarf2out_set_demangle_name_func. But add_name_attribute is called
with the result of dwarf2_name which comes from decl_printable_name.
I'd always expect that to give the dotted form...
Aha:
2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
Nicolas Setton <setton@adacore.com>
Olivier Hainque <hainque@adacore.com>
Gary Dismukes <dismukes@adacore.com>
...
* misc.c (gnat_dwarf_name): New function.
(LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
(gnat_post_options): Add comment about structural alias
analysis.
(gnat_parse_file): Do not call cgraph_optimize here.
(LANG_HOOKS_WRITE_GLOBALS): Define to
gnat_write_global_declarations.
Nothing before there is going to put the mangled name in DWARF info.
I don't know if that means 4.2 or 4.3.
--
Daniel Jacobowitz
CodeSourcery