From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9349 invoked by alias); 14 May 2009 11:38:40 -0000 Received: (qmail 9338 invoked by uid 22791); 14 May 2009 11:38:39 -0000 X-SWARE-Spam-Status: No, hits=-1.0 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,MSGID_FROM_MTA_HEADER,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mtagate4.de.ibm.com (HELO mtagate4.de.ibm.com) (195.212.29.153) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 May 2009 11:38:34 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate4.de.ibm.com (8.14.3/8.13.8) with ESMTP id n4EBcVLT254206 for ; Thu, 14 May 2009 11:38:31 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n4EBcURn3580110 for ; Thu, 14 May 2009 13:38:30 +0200 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n4EBcUpl005507 for ; Thu, 14 May 2009 13:38:30 +0200 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with SMTP id n4EBcT3v005484; Thu, 14 May 2009 13:38:29 +0200 Message-Id: <200905141138.n4EBcT3v005484@d12av02.megacenter.de.ibm.com> Received: by tuxmaker.boeblingen.de.ibm.com (sSMTP sendmail emulation); Thu, 14 May 2009 13:38:29 +0200 Subject: [rfc] Ada simplification: ada_find_any_type To: gdb-patches@sourceware.org, brobecker@adacore.com Date: Thu, 14 May 2009 11:38:00 -0000 From: "Ulrich Weigand" MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-05/txt/msg00298.txt.bz2 Hello, this is the last of the Ada patches. A recent change introduced a use of current_gdbarch into ada_find_any_type, which is somewhat hard to eliminate. However, it seems to me that for all but one callers of ada_find_any_type, the check for primitive types isn't really necessary, as they are always passed Ada-specific types that can never be primitive types. The one exception is to_fixed_range_type, which indeed should check for primitive types. The following patch therefore moves the check into this routine. While this still used current_gdbarch, that instance turns out to be more straightforward to eliminate here than it would have been in the generic ada_find_any_type routine ... Joel, would this be OK? Bye, Ulrich ChangeLog: * ada-lang.c (ada_find_any_type): Move check for primitive types ... (to_fixed_range_type): ... to here. Index: gdb-head/gdb/ada-lang.c =================================================================== --- gdb-head.orig/gdb/ada-lang.c +++ gdb-head/gdb/ada-lang.c @@ -6487,16 +6487,11 @@ struct type * ada_find_any_type (const char *name) { struct symbol *sym = ada_find_any_symbol (name); - struct type *type = NULL; if (sym != NULL) - type = SYMBOL_TYPE (sym); + return SYMBOL_TYPE (sym); - if (type == NULL) - type = language_lookup_primitive_type_by_name - (language_def (language_ada), current_gdbarch, name); - - return type; + return NULL; } /* Given NAME and an associated BLOCK, search all symbols for @@ -9451,6 +9446,11 @@ to_fixed_range_type (char *name, struct struct type *base_type; char *subtype_info; + /* Also search primitive types if type symbol could not be found. */ + if (raw_type == NULL) + raw_type = language_lookup_primitive_type_by_name + (language_def (language_ada), current_gdbarch, name); + if (raw_type == NULL) base_type = builtin_type_int32; else if (TYPE_CODE (raw_type) == TYPE_CODE_RANGE) -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE Ulrich.Weigand@de.ibm.com