From: Joel Brobecker Date: Mon, 22 Jan 2018 04:23:34 +0000 (-0500) Subject: Ada/DWARF: Assume the Ada compiler produces descriptive type attributes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de4cb04a20782b817fc80b49bba83b43cf1cb85d;p=binutils-gdb.git Ada/DWARF: Assume the Ada compiler produces descriptive type attributes GCC was enhanced in 2011 to generate this attribute, so I think we can now assume that it is available when using that compiler. Doing so allows us to speed up what we call "parallel type" lookups when processing certain types encoded using the GNAT encoding. This patch changes need_gnat_info to always expect those attributes to be generated when the language is Ada. This is an assumption that on the surfcace looks like it might be a bit on the edge; but in practice, it should be OK because this is only useful in the context of handling GNAT-specific encodings. Other Ada compilers would presumably produce debugging information using pure DWARF constructs, so would not be impacted by this. gdb/ChangeLog: * dwarf2read.c (need_gnat_info): Return nonzero if the cu's language is Ada. Tested on x86_64-linux. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 095f6576bf4..6a5572faef8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-01-22 Joel Brobecker + + * dwarf2read.c (need_gnat_info): Return nonzero if the cu's + language is Ada. + 2018-01-22 Joel Brobecker * linespec.c (create_sals_line_offset): Remove code that preserved diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 215f3316847..96026a8be04 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -21816,15 +21816,9 @@ die_type (struct die_info *die, struct dwarf2_cu *cu) static int need_gnat_info (struct dwarf2_cu *cu) { - /* FIXME: brobecker/2010-10-12: As of now, only the AdaCore version - of GNAT produces this auxiliary information, without any indication - that it is produced. Part of enhancing the FSF version of GNAT - to produce that information will be to put in place an indicator - that we can use in order to determine whether the descriptive type - info is available or not. One suggestion that has been made is - to use a new attribute, attached to the CU die. For now, assume - that the descriptive type info is not available. */ - return 0; + /* Assume that the Ada compiler was GNAT, which always produces + the auxiliary information. */ + return (cu->language == language_ada); } /* Return the auxiliary type of the die in question using its