This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/commit] DWARF: Mark all Ada functions as prototyped.
- From: Tom Tromey <tromey at redhat dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 13 May 2013 09:31:01 -0600
- Subject: Re: [RFA/commit] DWARF: Mark all Ada functions as prototyped.
- References: <1368440218-22309-1-git-send-email-brobecker at adacore dot com>
>>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes:
Joel> This makes sure that the types of the arguments are taken into account
Joel> when performing an inferior function call, and in particular
Joel> appropriatly converted to the correct type.
DWARF implies that this attribute is only meaningful for C. And GCC
emits it only for C89 (though GCC pretends that all variants of C are
C89... oops):
static inline void
add_prototyped_attribute (dw_die_ref die, tree func_type)
{
if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
&& prototype_p (func_type))
add_AT_flag (die, DW_AT_prototyped, 1);
}
Joel> - /* All functions in C++, Pascal and Java have prototypes. */
Joel> + /* All functions in Ada, C++, Pascal and Java have prototypes. */
Joel> attr = dwarf2_attr (die, DW_AT_prototyped, cu);
Joel> if ((attr && (DW_UNSND (attr) != 0))
Joel> + || cu->language == language_ada
Joel> || cu->language == language_cplus
Joel> || cu->language == language_java
Joel> || cu->language == language_pascal)
... so I suggest instead inverting the sense here and rewriting it to
check just for languages that are "C-like" -- DW_LANG_C89, DW_LANG_C,
DW_LANG_ObjC, DW_LANG_C99, and DW_LANG_UPC.
What do you think?
Tom