From patchwork Thu Jun 15 12:10:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Costas Argyris X-Patchwork-Id: 108458 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp584890vqr; Thu, 15 Jun 2023 05:12:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6QREmRUAPT8jz1SkTjrPgyhCiHrGyiNRYzSM3xjhEEJLip1dCmfhVKdrlcYl1uqdmsjjsf X-Received: by 2002:a19:6d08:0:b0:4f6:3000:4d4d with SMTP id i8-20020a196d08000000b004f630004d4dmr8983511lfc.38.1686831127260; Thu, 15 Jun 2023 05:12:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686831127; cv=none; d=google.com; s=arc-20160816; b=vFMkWTBhCkhLtk2RvYiiq6HyM8AMPoefIXVmV5WCf2rTw9Qv38IEuc/kg4DjHl/aoQ Or9aVZNEVrvgh9BMenY42aw63Y5sUb+IpZYMOoatB2CZLCy9yAiC8beqbpJaajyf5Ghr 45fvbrtN4awt1Cr6ggikAOFZ4n1f+TrNNVohI0ED8MXXO+HXwJEk24EFZV4e8qV5IMJT 5+j1wXArt6wACRYjWmqYOykN0YK73gYHOmtg/goye3n2ANuRCKlwz5ORocEiYwjoL/RT e/k8K7IbdPi966ARnHc0yJFb2lgJ6rjrO4Q6MWPDGJhpq+uByfCYbzbOAeLlX6RAalF4 Nxyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:to:subject :message-id:date:mime-version:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=68svTrRTKuVOkwXFcR38ub7CPpkmCWVVpK3uqM9FkGg=; b=FvQY0dgKB4zQen1rcwlCL5neBfr2sp+5Mb88BNtafZ+DzkEMGhAU4QU5XGmcOBipF+ JiWydkm9uyVYDuS1KycRP04owCtRO/XThF3+o7QNffojh7fSIgdjHy5msy9HcoVgGnOa sqtawiU9PvqtlFl0rL5Vhju3KRh/f3904MejjYsGEgbkx9OFm83YdbhAiDh+miVkLf0c hr+uI3hZzeBPdsfRBpjPzcMCXtAOevmsNXYI8fXNVN+jRnpW64JvDe618t4DUaYdEz/2 sBy+1Y/j9uRLsqRID2KhF+EeT6WDpGm2UDyr/22wyNdf+xDs5U6wYRzl0T+n8jp7WIZb NkhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=XnRXNmtP; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id jx6-20020a170906ca4600b009617ad9d89dsi9485799ejb.38.2023.06.15.05.12.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Jun 2023 05:12:07 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=XnRXNmtP; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 11CF43856619 for ; Thu, 15 Jun 2023 12:11:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11CF43856619 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1686831107; bh=68svTrRTKuVOkwXFcR38ub7CPpkmCWVVpK3uqM9FkGg=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=XnRXNmtPFzCOjw4u03Y356Nz5Z9SYt0q5w523b4Sj99gXNW/oMrVZEO/T5JH0RNRW RLV4v4TtVI2j/CElU2TQhIwJ2gvtccl9fHPgKPKFy+myrNW6FGx52BxFwQAspOZaJ8 gIa50K77OMeMfdaIZKJhIHUGrw8B974dbLARYIQ8= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by sourceware.org (Postfix) with ESMTPS id 40F423858C1F for ; Thu, 15 Jun 2023 12:11:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 40F423858C1F Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-5187aa18410so3745511a12.0 for ; Thu, 15 Jun 2023 05:11:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686831059; x=1689423059; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tsPBHDwNohz+kU0Qa5DI0CAb6Qpv8xDnzhaR2QaWM9s=; b=YJ39vyaW0f3oSCPYCgHMqaW704Eb3u0usAo5gXEm4kfnG842QDstriaMHyoTX+paPp soL6VL0xOasIlhgCdot1QhF2fvUe/R+2toJcFiNtNhOVcpWtjemjFMNN1aF3SEYq92ud v93KN2XJY3be0vXyMIyZoOAZd8mHzAdBKLCEJNEO45uRzne+qHjDj+dGIMWtBBwDdSDw dC2tpHkW90zvOqCn5gV7Rfc+VQvjVz3teJBKBRj3npDTyYqaMNQb++7NtiFmIW9bji0/ EDhw+yK+E9eo9phR+xcflK5BssuO58lsACxffd7f72LAMwAVMlVjVWew0sVmAv+Aroon KLow== X-Gm-Message-State: AC+VfDxE35cD8u0Eixfe786zXYfeo5NJMombC03YPhmZvpqDD2vXsYoG pcQbc8eeF9wvU0iIYw74ccucd2mieFLvni4R7KpPWmPGDT0tag== X-Received: by 2002:aa7:c553:0:b0:508:3b1f:e6b5 with SMTP id s19-20020aa7c553000000b005083b1fe6b5mr10981605edr.15.1686831059132; Thu, 15 Jun 2023 05:10:59 -0700 (PDT) MIME-Version: 1.0 Date: Thu, 15 Jun 2023 13:10:47 +0100 Message-ID: Subject: [PATCH] gcc-ar: Remove code duplication. To: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, 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-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Costas Argyris via Gcc-patches From: Costas Argyris Reply-To: Costas Argyris Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768770636062078322?= X-GMAIL-MSGID: =?utf-8?q?1768770636062078322?= Some refactoring I thought would be useful while looking at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77576 I think some duplicated code can go away by doing this, while also saving a bit of memory. From c3f3b2fd53291805b5d0be19df6d1a348c5889ec Mon Sep 17 00:00:00 2001 From: Costas Argyris Date: Thu, 15 Jun 2023 12:37:35 +0100 Subject: [PATCH] gcc-ar: Remove code duplication. Preparatory refactoring that simplifies by eliminating some duplicated code, before trying to fix 77576. I believe this stands on its own regardless of the PR. It also saves a nargv element when we have a plugin and three when not. Signed-off-by: Costas Argyris --- gcc/gcc-ar.cc | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gcc/gcc-ar.cc b/gcc/gcc-ar.cc index 5e5b63e1988..4e4c525927d 100644 --- a/gcc/gcc-ar.cc +++ b/gcc/gcc-ar.cc @@ -128,6 +128,9 @@ main (int ac, char **av) const char *exe_name; #if HAVE_LTO_PLUGIN > 0 char *plugin; + const int j = 2; /* Two extra args, --plugin */ +#else + const int j = 0; /* No extra args. */ #endif int k, status, err; const char *err_msg; @@ -206,25 +209,21 @@ main (int ac, char **av) } } + /* Prepend - if necessary. */ + if (is_ar && av[1] && av[1][0] != '-') + av[1] = concat ("-", av[1], NULL); + /* Create new command line with plugin - if we have one, otherwise just copy the command through. */ - nargv = XCNEWVEC (const char *, ac + 4); + nargv = XCNEWVEC (const char *, ac + j + 1); /* +j plugin args +1 for NULL. */ nargv[0] = exe_name; #if HAVE_LTO_PLUGIN > 0 nargv[1] = "--plugin"; nargv[2] = plugin; - if (is_ar && av[1] && av[1][0] != '-') - av[1] = concat ("-", av[1], NULL); - for (k = 1; k < ac; k++) - nargv[2 + k] = av[k]; - nargv[2 + k] = NULL; -#else - if (is_ar && av[1] && av[1][0] != '-') - av[1] = concat ("-", av[1], NULL); - for (k = 1; k < ac; k++) - nargv[k] = av[k]; - nargv[k] = NULL; #endif + for (k = 1; k < ac; k++) + nargv[j + k] = av[k]; + nargv[j + k] = NULL; /* Run utility */ /* ??? the const is misplaced in pex_one's argv? */ -- 2.30.2