From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by sourceware.org (Postfix) with ESMTPS id 7FB4B383D030 for ; Mon, 5 Jul 2021 13:24:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7FB4B383D030 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-lj1-x22f.google.com with SMTP id w11so24762936ljh.0 for ; Mon, 05 Jul 2021 06:24:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:mime-version:content-disposition; bh=M3qFd2iIOETrocOZ0aC2a7JVq5djScGFCqx31FHi4GE=; b=B545q4f3vph324xl0vwQ9saGtXE0hsjHHPZlLt0pDFA1YqnDNkhRFZon1Rs4iy2ywv fTF2wMRuWfH3trBAdiBTua7EAxMdd8c4s3M3YhudNkbilL1kJoTnNv+nYP2nRe3WUQ9f +LDOUw4yVua+FIqvgB+kivWlkBUwP/A/betXis/tvDZWmrLboJU7eWfsDmO3KAhhaEXK roauKSNGUVaABBnR1SdbqguuorLEmyI/D2GEiPa3A+ubmsmQtIRjaiSokwsmgSPztLPF ilB3oKYZcnUOn46lZviSUNkXXNd7hXHXp3S5rGVh58V1B/qUIG7LIu7DF2X1GXnjq4E9 Faew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=M3qFd2iIOETrocOZ0aC2a7JVq5djScGFCqx31FHi4GE=; b=lX22XWl9xPlNeczXPUUg4k1nigvP9o62Fwq+YXOkbaaa5PNPCTXrjZsDcr03fCQfGA p7AkczIVwsqOdJZ+Z9QYgBICgS03XQObwYoOpuofg+iqnp4dHPHXm4DMFUgfePVnwt4z ul610Q3dOITQGH94MoVDDhBgJZqWB0oEUsOE0iLvgsqS5lyWmwJhtjgeKI9BcE76iFhw MdbIC9sO0pYy4bbY9SS7+IxfQAsoru45QhgFv+o0cYR6pNcaPaykKNLBp1QgbnXOiUwY J99jQmyoQgNjMUb7i09W3xlTHxY7tkStbf4rfpFwKt16MRaWKHDrjlhCJJNwktPqGeik kyLQ== X-Gm-Message-State: AOAM531vZG7TnwqX15v+3RQOoaKrfzyG/+rtiZxtRpAEPS5x+HbI9VxJ Smg3hbrfQv7VdFSjYfgijWitEL5FkJVBZEmK X-Google-Smtp-Source: ABdhPJxm2ptGo7O4+9N6qiKPCZMztUQE/e/ww5LrNewELSeoML6i3pW6DUKITJir1FYA4t6KnCD53Q== X-Received: by 2002:a2e:9bc2:: with SMTP id w2mr11330634ljj.150.1625491485299; Mon, 05 Jul 2021 06:24:45 -0700 (PDT) Received: from adacore.com ([2a02:2ab8:224:2ce:72b5:e8ff:feef:ee60]) by smtp.gmail.com with ESMTPSA id g12sm1087477lfc.13.2021.07.05.06.24.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jul 2021 06:24:44 -0700 (PDT) Date: Mon, 5 Jul 2021 13:24:43 +0000 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Bob Duff Subject: [Ada] Clean up Get_Index_Bounds Message-ID: <20210705132443.GA2224069@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tKW2IUtsqtDRztdT" Content-Disposition: inline X-Spam-Status: No, score=-6.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org 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-List-Received-Date: Mon, 05 Jul 2021 13:24:48 -0000 --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Replace some calls to procedure Get_Index_Bounds with calls to the function with the same name. Not all calls are replaced (some seem clearer as procedure calls). Change names to be more consistent with the RM. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb, sem_util.adb, sem_util.ads: Change L and H to be First and Last, to match the attributes in the RM. Change calls from procedure to function where appropriate. --tKW2IUtsqtDRztdT Content-Type: application/gzip Content-Disposition: attachment; filename="patch.diff.gz" Content-Transfer-Encoding: base64 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 EXB41J1T6WwhBfn7b6iTJd+AjgAA --tKW2IUtsqtDRztdT--