From patchwork Wed Jul 7 16:25:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Marie de Rodat X-Patchwork-Id: 1501885 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=adacore-com.20150623.gappssmtp.com header.i=@adacore-com.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=HD6yF0AM; dkim-atps=neutral Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GKlQZ6cgFz9sWq for ; Thu, 8 Jul 2021 02:35:17 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AC40F395C046 for ; Wed, 7 Jul 2021 16:35:15 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by sourceware.org (Postfix) with ESMTPS id 4FC05395C04E for ; Wed, 7 Jul 2021 16:25:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4FC05395C04E 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-lf1-x12b.google.com with SMTP id f13so5255386lfh.6 for ; Wed, 07 Jul 2021 09:25:26 -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=S0ecQ+LVCa5MnmHuMIv7ZZASl9fQGAxOwT1hbgDE4pE=; b=HD6yF0AMGZ+yuo3wgh4kzLhtMP9i5kxEuVqmJO1F+3jFrWHRgvQs7uZqWrUQ1a/LI4 nBgiiu307C/Fr8VLWZ+zEMJzKG3Q4UHemQL2O0ItNYQuRyFiOPeXByNHuDy33Zr7787t 2jj5BJuoetrxDHLZmwWmcTwOEgjqT6aiuSTo87WsWkxK0qtHkhwFG7sdR9mVIR0z3Hoc Ez6ka7AEwuj09rclfiLQjwhLY1ykIH4i11Z8+jsmSd/WkhSvJLENKWnAzVe3ivL3Q/jh ra2vdtEctm6N5i/EpAtvTVk4sL1w4ZQvbxnz+P7XTBbB5Em9M4DauVZatSg4qmcREW1S zE/w== 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=S0ecQ+LVCa5MnmHuMIv7ZZASl9fQGAxOwT1hbgDE4pE=; b=dBOgLG2WX093JjZm0LKyVrw2mGG+Kk2++h8PIYNAIHrYIinUHwTJA25B2FXJNdSjYx HvtAuPDtsAAoie93A4Qgxmu7z6fmCBAsZojEYDk09W92VmOGoADOC3pV9H5D/nFkR36s rFcKWxB84DMFFzpBjttxcuFZA3/8MtPfe0tDwF2Fav0r05lU5JUT9uMg8uMjeKXrv/bn obA8L3N6ivOG67al6940vaDsePYC+j7iuGB+1l9S4J1k8o5eE8CaalbbnlK/n9FMYc3/ uoj60wkSUx6TsBLLAnxE1XU0c3wvr27Nw4QyQWsTfY/4o0pTUnn1tFKRwomFmLPHeb/S 6g2A== X-Gm-Message-State: AOAM532H2QZycF81zhjm8Oy4/We4S+urSKUVeJ1XPPVv18XwtFhBqfe4 vvDHLZeU6xSKjSlJO5Bkou57ERwsVQk4HA== X-Google-Smtp-Source: ABdhPJzw7g0vt47xYqHPvUE2ykAd9K7+v8EVikU4FrvHKZNKaTA53m0ybSGsBsRW75uJh1ZF9NtusQ== X-Received: by 2002:a2e:a595:: with SMTP id m21mr20713542ljp.470.1625675124405; Wed, 07 Jul 2021 09:25:24 -0700 (PDT) Received: from adacore.com ([2a02:2ab8:224:2ce:72b5:e8ff:feef:ee60]) by smtp.gmail.com with ESMTPSA id v3sm1327947lfi.232.2021.07.07.09.25.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Jul 2021 09:25:22 -0700 (PDT) Date: Wed, 7 Jul 2021 16:25:20 +0000 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Subject: [Ada] Replace obsolete calls that use global name buffer Message-ID: <20210707162520.GA2543076@adacore.com> MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_ASCII_DIVIDERS, 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: , Cc: Piotr Trojanek Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Code cleanup related to loading of compilation units; behaviour is unaffected. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * uname.adb (Get_Body_Name, Get_Parent_Body_Name, Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name, Is_Body_Name, Is_Spec_Name, Name_To_Unit_Name): Use a local instead of the global buffer. diff --git a/gcc/ada/uname.adb b/gcc/ada/uname.adb --- a/gcc/ada/uname.adb +++ b/gcc/ada/uname.adb @@ -47,15 +47,18 @@ package body Uname is ------------------- function Get_Body_Name (N : Unit_Name_Type) return Unit_Name_Type is + Buffer : Bounded_String; begin - Get_Name_String (N); + Append (Buffer, N); - pragma Assert (Name_Len > 2 - and then Name_Buffer (Name_Len - 1) = '%' - and then Name_Buffer (Name_Len) = 's'); + pragma Assert + (Buffer.Length > 2 + and then Buffer.Chars (Buffer.Length - 1) = '%' + and then Buffer.Chars (Buffer.Length) = 's'); - Name_Buffer (Name_Len) := 'b'; - return Name_Find; + Buffer.Chars (Buffer.Length) := 'b'; + + return Name_Find (Buffer); end Get_Body_Name; ----------------------------------- @@ -111,19 +114,19 @@ package body Uname is -------------------------- function Get_Parent_Body_Name (N : Unit_Name_Type) return Unit_Name_Type is + Buffer : Bounded_String; begin - Get_Name_String (N); + Append (Buffer, N); - while Name_Buffer (Name_Len) /= '.' loop - pragma Assert (Name_Len > 1); -- not a child or subunit name - Name_Len := Name_Len - 1; + while Buffer.Chars (Buffer.Length) /= '.' loop + pragma Assert (Buffer.Length > 1); -- not a child or subunit name + Buffer.Length := Buffer.Length - 1; end loop; - Name_Buffer (Name_Len) := '%'; - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := 'b'; - return Name_Find; + Buffer.Chars (Buffer.Length) := '%'; + Append (Buffer, 'b'); + return Name_Find (Buffer); end Get_Parent_Body_Name; -------------------------- @@ -131,22 +134,22 @@ package body Uname is -------------------------- function Get_Parent_Spec_Name (N : Unit_Name_Type) return Unit_Name_Type is + Buffer : Bounded_String; begin - Get_Name_String (N); + Append (Buffer, N); - while Name_Buffer (Name_Len) /= '.' loop - if Name_Len = 1 then + while Buffer.Chars (Buffer.Length) /= '.' loop + if Buffer.Length = 1 then return No_Unit_Name; else - Name_Len := Name_Len - 1; + Buffer.Length := Buffer.Length - 1; end if; end loop; - Name_Buffer (Name_Len) := '%'; - Name_Len := Name_Len + 1; - Name_Buffer (Name_Len) := 's'; - return Name_Find; + Buffer.Chars (Buffer.Length) := '%'; + Append (Buffer, 's'); + return Name_Find (Buffer); end Get_Parent_Spec_Name; ------------------- @@ -154,15 +157,18 @@ package body Uname is ------------------- function Get_Spec_Name (N : Unit_Name_Type) return Unit_Name_Type is + Buffer : Bounded_String; begin - Get_Name_String (N); + Append (Buffer, N); - pragma Assert (Name_Len > 2 - and then Name_Buffer (Name_Len - 1) = '%' - and then Name_Buffer (Name_Len) = 'b'); + pragma Assert + (Buffer.Length > 2 + and then Buffer.Chars (Buffer.Length - 1) = '%' + and then Buffer.Chars (Buffer.Length) = 'b'); - Name_Buffer (Name_Len) := 's'; - return Name_Find; + Buffer.Chars (Buffer.Length) := 's'; + + return Name_Find (Buffer); end Get_Spec_Name; ------------------- @@ -489,11 +495,12 @@ package body Uname is ------------------ function Is_Body_Name (N : Unit_Name_Type) return Boolean is + Buffer : Bounded_String; begin - Get_Name_String (N); - return Name_Len > 2 - and then Name_Buffer (Name_Len - 1) = '%' - and then Name_Buffer (Name_Len) = 'b'; + Append (Buffer, N); + return Buffer.Length > 2 + and then Buffer.Chars (Buffer.Length - 1) = '%' + and then Buffer.Chars (Buffer.Length) = 'b'; end Is_Body_Name; ------------------- @@ -501,17 +508,16 @@ package body Uname is ------------------- function Is_Child_Name (N : Unit_Name_Type) return Boolean is - J : Natural; + Buffer : Bounded_String; begin - Get_Name_String (N); - J := Name_Len; + Append (Buffer, N); - while Name_Buffer (J) /= '.' loop - if J = 1 then + while Buffer.Chars (Buffer.Length) /= '.' loop + if Buffer.Length = 1 then return False; -- not a child or subunit name else - J := J - 1; + Buffer.Length := Buffer.Length - 1; end if; end loop; @@ -589,11 +595,12 @@ package body Uname is ------------------ function Is_Spec_Name (N : Unit_Name_Type) return Boolean is + Buffer : Bounded_String; begin - Get_Name_String (N); - return Name_Len > 2 - and then Name_Buffer (Name_Len - 1) = '%' - and then Name_Buffer (Name_Len) = 's'; + Append (Buffer, N); + return Buffer.Length > 2 + and then Buffer.Chars (Buffer.Length - 1) = '%' + and then Buffer.Chars (Buffer.Length) = 's'; end Is_Spec_Name; ----------------------- @@ -601,12 +608,11 @@ package body Uname is ----------------------- function Name_To_Unit_Name (N : Name_Id) return Unit_Name_Type is + Buffer : Bounded_String; begin - Get_Name_String (N); - Name_Buffer (Name_Len + 1) := '%'; - Name_Buffer (Name_Len + 2) := 's'; - Name_Len := Name_Len + 2; - return Name_Find; + Append (Buffer, N); + Append (Buffer, "%s"); + return Name_Find (Buffer); end Name_To_Unit_Name; ---------------