From patchwork Thu Apr 27 17:29:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 68395 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E15A73858C27 for ; Thu, 27 Apr 2023 17:30:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E15A73858C27 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682616627; bh=iBqSw5zyrqNqUqT+h6uXn5ttcWD2Y40cU/+ecb6u3U8=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=u+xzoAgjVYY/BVCbUkOz7y0MrkGtQ143gY1aHdQc1jfaKh6tAkzV+Srs9imeWoG/5 xlyePqaFix49zt8Zm76MKaoYQy2xQ838TA1JPF7AFQ9X6UVc3qNx6Yy+CgQx9WFajr Zod2bG7wCTs49DJyJbX5fyYuKr1RNCiElYmxr2aI= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133]) by sourceware.org (Postfix) with ESMTPS id C2C0F3858D33 for ; Thu, 27 Apr 2023 17:30:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C2C0F3858D33 Received: by mail-il1-x133.google.com with SMTP id e9e14a558f8ab-3293e4b2cb5so69729035ab.3 for ; Thu, 27 Apr 2023 10:30:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682616604; x=1685208604; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iBqSw5zyrqNqUqT+h6uXn5ttcWD2Y40cU/+ecb6u3U8=; b=CSk+FBJD5Tb2zk0hCnHn3pIGPeV405UDxc9NTPILcMNGjue+94Ogw/+dOSk9sz+dNo p/9TVYOmeDL0BJFMG7PqQHICZJjQdL1asU8AeYMvhiOYvIzfwgxZ/mboejtzamLSYTQ/ fk979aDrEKky8+vShV2dL4AL4utXqGkAPRjd+T0zlqdgixjMVht982h+Qz0vbFQEtR2W Dl3atcvRVZ9Z2b9ztJD1fjpeRzg/lKO3cT3IJO8pg5jFEAf2225wAzO+BfFmmHlEVWjU QJWp1oQjo9r7z9bj2Kxb0zAwRGrJ7v6GLglAwLtm5JR1KL9dnrSbJVueA4mPUVqd0J9+ Q+mA== X-Gm-Message-State: AC+VfDwSyI9+efegaZ4m1aHrE6tIiEyi7cAFlwqOQ2cOqsm2qoPQNEAN 6ZKAHL8/YliZ61KlnIBWADX5q5y2uCM5pnUFdr28hg== X-Google-Smtp-Source: ACHHUZ74IQ34QbH5Td85RoW++QCFxIq1Ujqq/BgwEo6Ru+HRIw2Skq0q8++HSkpkFQAQHXzaVZBDaQ== X-Received: by 2002:a92:ca8c:0:b0:329:3b7a:c33d with SMTP id t12-20020a92ca8c000000b003293b7ac33dmr1723333ilo.8.1682616604048; Thu, 27 Apr 2023 10:30:04 -0700 (PDT) Received: from localhost.localdomain (71-211-191-82.hlrn.qwest.net. [71.211.191.82]) by smtp.gmail.com with ESMTPSA id h18-20020a056638339200b0040fcd31af1csm5723121jav.65.2023.04.27.10.30.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Apr 2023 10:30:03 -0700 (PDT) To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH] Use discrete_position in ada-valprint.c Date: Thu, 27 Apr 2023 11:29:53 -0600 Message-Id: <20230427172953.3057526-1-tromey@adacore.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tom Tromey via Gdb-patches From: Tom Tromey Reply-To: Tom Tromey Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" I found a couple of spots in ada-valprint.c that use an explicit loop, but where discrete_position could be used instead. Reviewed-by: Keith Seitz --- gdb/ada-valprint.c | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c index 24a7ea2ba79..ca5608f6090 100644 --- a/gdb/ada-valprint.c +++ b/gdb/ada-valprint.c @@ -364,9 +364,6 @@ ada_printchar (int c, struct type *type, struct ui_file *stream) void ada_print_scalar (struct type *type, LONGEST val, struct ui_file *stream) { - unsigned int i; - unsigned len; - if (!type) { print_longest (stream, 'd', 0, val); @@ -379,23 +376,14 @@ ada_print_scalar (struct type *type, LONGEST val, struct ui_file *stream) { case TYPE_CODE_ENUM: - len = type->num_fields (); - for (i = 0; i < len; i++) - { - if (type->field (i).loc_enumval () == val) - { - break; - } - } - if (i < len) - { - fputs_styled (ada_enum_name (type->field (i).name ()), + { + gdb::optional posn = discrete_position (type, val); + if (posn.has_value ()) + fputs_styled (ada_enum_name (type->field (*posn).name ()), variable_name_style.style (), stream); - } - else - { + else print_longest (stream, 'd', 0, val); - } + } break; case TYPE_CODE_INT: @@ -818,8 +806,6 @@ static void ada_val_print_enum (struct value *value, struct ui_file *stream, int recurse, const struct value_print_options *options) { - int i; - unsigned int len; LONGEST val; if (options->format) @@ -832,18 +818,11 @@ ada_val_print_enum (struct value *value, struct ui_file *stream, int recurse, const gdb_byte *valaddr = value->contents_for_printing ().data (); int offset_aligned = ada_aligned_value_addr (type, valaddr) - valaddr; - len = type->num_fields (); val = unpack_long (type, valaddr + offset_aligned); - for (i = 0; i < len; i++) - { - QUIT; - if (val == type->field (i).loc_enumval ()) - break; - } - - if (i < len) + gdb::optional posn = discrete_position (type, val); + if (posn.has_value ()) { - const char *name = ada_enum_name (type->field (i).name ()); + const char *name = ada_enum_name (type->field (*posn).name ()); if (name[0] == '\'') gdb_printf (stream, "%ld %ps", (long) val,