[PATCH v3 01/10] s390: Remove duplicate checks for cached gdbarch at init

Philipp Rudo prudo@linux.vnet.ibm.com
Fri Dec 8 11:04:00 GMT 2017


When initializing the gdbarch there is a check whether an appropriate
gdbarch already exists in the gdbarch_list.  If some of the checks fail
this would lead to a different target description.  However
gdbarch_list_lookup_by_info already checks for

	if (info->target_desc != arches->gdbarch->target_desc)
	  continue;

Remove these duplicate checks.

gdb/ChangeLog:

	* s390-linux-tdep.c (s390_gdbarch_init): Remove douplicate checks when
	looking for cached gdbarch and add comment for remaining.
---
 gdb/s390-linux-tdep.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index a0d4cdd740..0627db0e50 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -8048,14 +8048,11 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
       tdep = gdbarch_tdep (arches->gdbarch);
       if (!tdep)
 	continue;
-      if (tdep->abi != tdep_abi)
-	continue;
+      /* A program can 'choose' not to use the vector registers when they
+	 are present.  Leading to the same tdesc but different tdep and
+	 thereby a different gdbarch.  */
       if (tdep->vector_abi != vector_abi)
 	continue;
-      if ((tdep->gpr_full_regnum != -1) != have_upper)
-	continue;
-      if (tdep->have_gs != have_gs)
-	continue;
       if (tdesc_data != NULL)
 	tdesc_data_cleanup (tdesc_data);
       return arches->gdbarch;
-- 
2.13.5



More information about the Gdb-patches mailing list