From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 788143849AE8 for ; Tue, 7 May 2024 08:00:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 788143849AE8 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 788143849AE8 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32e ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715068880; cv=none; b=TOG3jG3llPpDj/EjnE5kBT6ZvJofF+RFqaZjYIIfo6WWDvUQ5RLC1bA/dk9VroUwLW4xXBHb3BqBCuljZydNu0ZLq3ECKz+DF5UKhANRJIbVORi/yjCeedNTN6zJcIXKc41YAMmw6ERVvPoGgEL3WnNpd0CWVkSM4FSvyWLeFa8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715068880; c=relaxed/simple; bh=JVRN3MaaJ2inxEZ3nUILKkQeoqSQ9x/vDMQSACUqJP4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=olHbuHlGzVzk2qbzIZAmcR5WGJqX+ns2ivzflADoNFVF6J3k8i0KhlcY52L+ibtQsQmtAXX1RdjvL1JaLdttnNRr0GPeBvdNtxTZE1Rvrl4efWy4i50T2X5mIc4ztqsCPQimrOZqe6ad1l1pLcBqMYMGtcdLfxucm+O6spVN58g= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-41b5e74fa83so21126035e9.0 for ; Tue, 07 May 2024 01:00:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1715068846; x=1715673646; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=iFrp/fkoMaexutfpbZ+C7Cn9CMMwC7mT2n9j5uyI/7g=; b=cGV4LmaHFHXzeEFCkYvrkCcfG5a48gbtJP83PyxdEBcFQcpnpbUkxkIWw2+/daAtdN DpI/l82Cwz34mJe/zJ0SPOziZ6lVwO0cQgMU40gvdGMr20ULVfz6x4Mq0TIJ4b0C++f2 DdkghVRDe6Rszw+s71lo4Pgp4kdQtoD2CKm4m9i3Q/n969bV/5lONzaug8eIsaODatZd zhapEZApgDJgyu6BINzT8UVZ0b8MhmgDHDpzy1XA3m9mRR6SwMFZfMV0qfCIqAul1s5Z Z6ZakRdyRqJ6QnmFXPF8tuJkIvIWSvPRIcttlxmFfsrZKMfhQtqKdGQUKMpr9KecYXPJ tTrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715068846; x=1715673646; 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=iFrp/fkoMaexutfpbZ+C7Cn9CMMwC7mT2n9j5uyI/7g=; b=MF6uYpg6cQukGiKUWgIT8evpArcn3p8rWz/rLL2mcEA9hIu3eYd6U1n4C6CudfDw/x cFOG2bQEg9P73vo/aWbrWN9SQiaPMkQ3TY/44vpM4u1qG7wsD9Ykc1jXzjU5TDqHvnlu 3lU4b7tIpbR+9h3Xz44N5z/ioHdZHFBNmky3S1uAbMnp2806A5bSsPIPasWMszUoJRxf LTzzjucd3T6xwxFmkpXUBhVq5fiADgfbrjrRWfNL5xXLw75yChP6zvTF879uoYbFZbk/ ktXZlBRt9iSoCFEuBtWOGOlkuWNAU8ZnBzZwGRa5qcbk/f5gYfZAI6ueG5blsr0zuGso Eeaw== X-Gm-Message-State: AOJu0YxLP/ILG6n549t8Gr1Sq1z5ELtFyjRU4op2rPaZyMwXioPWts9K ay0dsqZjEZ6ySvssDk3xKdBXQskbIU8ughFRjjkePiGrhnwOsXN6bt5c+l4VktnyuppqA0I663c = X-Google-Smtp-Source: AGHT+IFDDKyJVZP+0Jeu+Pd3FWEdG4luqoUs0ANPXInjhBTYAYF/KZjLQ0/VCghc6TrxWFoxmVdgUA== X-Received: by 2002:a05:600c:138a:b0:41b:d8df:93a3 with SMTP id u10-20020a05600c138a00b0041bd8df93a3mr9029082wmf.1.1715068846208; Tue, 07 May 2024 01:00:46 -0700 (PDT) Received: from localhost.localdomain ([2001:861:3382:1a90:11a6:1c9d:5099:b1e8]) by smtp.gmail.com with ESMTPSA id u17-20020a05600c19d100b0041bb11ff5a7sm22505613wmq.8.2024.05.07.01.00.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 May 2024 01:00:45 -0700 (PDT) From: =?UTF-8?q?Marc=20Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Piotr Trojanek Subject: [COMMITTED] ada: Prevent calculation of negative stack counts Date: Tue, 7 May 2024 10:00:44 +0200 Message-ID: <20240507080044.38255-1-poulhies@adacore.com> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.8 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 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: Piotr Trojanek Negative numbers of stack counts have no meaning. gcc/ada/ * lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count, Increment_Primary_Stack_Count, Increment_Sec_Stack_Count, Unit_Record): Stack counts are never negative. * ali.ads (Unit_Record): Likewise. * bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise. * exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise. * sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array): Likewise. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/ali.ads | 4 ++-- gcc/ada/bindgen.adb | 4 ++-- gcc/ada/exp_ch3.adb | 2 +- gcc/ada/lib.adb | 12 ++++++------ gcc/ada/lib.ads | 12 ++++++------ gcc/ada/sem_util.adb | 4 ++-- gcc/ada/sem_util.ads | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/gcc/ada/ali.ads b/gcc/ada/ali.ads index 23c744433a3..67b8fcd1b80 100644 --- a/gcc/ada/ali.ads +++ b/gcc/ada/ali.ads @@ -482,11 +482,11 @@ package ALI is -- Indicates whether a package body or a spec has a library-level -- finalization routine. - Primary_Stack_Count : Int; + Primary_Stack_Count : Nat; -- Indicates the number of task objects declared in this unit that have -- default sized primary stacks. - Sec_Stack_Count : Int; + Sec_Stack_Count : Nat; -- Indicates the number of task objects declared in this unit that have -- default sized secondary stacks. end record; diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb index bffd1344212..fc834e3a9b6 100644 --- a/gcc/ada/bindgen.adb +++ b/gcc/ada/bindgen.adb @@ -57,11 +57,11 @@ package body Bindgen is Num_Elab_Calls : Nat := 0; -- Number of generated calls to elaboration routines - Num_Primary_Stacks : Int := 0; + Num_Primary_Stacks : Nat := 0; -- Number of default-sized primary stacks the binder needs to allocate for -- task objects declared in the program. - Num_Sec_Stacks : Int := 0; + Num_Sec_Stacks : Nat := 0; -- Number of default-sized primary stacks the binder needs to allocate for -- task objects declared in the program. diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb index e9fab87365c..f934dbfddaa 100644 --- a/gcc/ada/exp_ch3.adb +++ b/gcc/ada/exp_ch3.adb @@ -6738,7 +6738,7 @@ package body Exp_Ch3 is -- Then multiply the result by the size of the array declare - Quantity : constant Int := Number_Of_Elements_In_Array (Typ); + Quantity : constant Nat := Number_Of_Elements_In_Array (Typ); -- Number_Of_Elements_In_Array is non-trival, consequently -- its result is captured as an optimization. diff --git a/gcc/ada/lib.adb b/gcc/ada/lib.adb index ebd6bc99040..c465828c562 100644 --- a/gcc/ada/lib.adb +++ b/gcc/ada/lib.adb @@ -173,12 +173,12 @@ package body Lib is return Units.Table (U).OA_Setting; end OA_Setting; - function Primary_Stack_Count (U : Unit_Number_Type) return Int is + function Primary_Stack_Count (U : Unit_Number_Type) return Nat is begin return Units.Table (U).Primary_Stack_Count; end Primary_Stack_Count; - function Sec_Stack_Count (U : Unit_Number_Type) return Int is + function Sec_Stack_Count (U : Unit_Number_Type) return Nat is begin return Units.Table (U).Sec_Stack_Count; end Sec_Stack_Count; @@ -1034,8 +1034,8 @@ package body Lib is -- Increment_Primary_Stack_Count -- ----------------------------------- - procedure Increment_Primary_Stack_Count (Increment : Int) is - PSC : Int renames Units.Table (Current_Sem_Unit).Primary_Stack_Count; + procedure Increment_Primary_Stack_Count (Increment : Nat) is + PSC : Nat renames Units.Table (Current_Sem_Unit).Primary_Stack_Count; begin PSC := PSC + Increment; end Increment_Primary_Stack_Count; @@ -1044,8 +1044,8 @@ package body Lib is -- Increment_Sec_Stack_Count -- ------------------------------- - procedure Increment_Sec_Stack_Count (Increment : Int) is - SSC : Int renames Units.Table (Current_Sem_Unit).Sec_Stack_Count; + procedure Increment_Sec_Stack_Count (Increment : Nat) is + SSC : Nat renames Units.Table (Current_Sem_Unit).Sec_Stack_Count; begin SSC := SSC + Increment; end Increment_Sec_Stack_Count; diff --git a/gcc/ada/lib.ads b/gcc/ada/lib.ads index ee06cde2727..93ff1b13531 100644 --- a/gcc/ada/lib.ads +++ b/gcc/ada/lib.ads @@ -463,8 +463,8 @@ package Lib is function No_Elab_Code_All (U : Unit_Number_Type) return Boolean; function OA_Setting (U : Unit_Number_Type) return Character; function Primary_Stack_Count - (U : Unit_Number_Type) return Int; - function Sec_Stack_Count (U : Unit_Number_Type) return Int; + (U : Unit_Number_Type) return Nat; + function Sec_Stack_Count (U : Unit_Number_Type) return Nat; function Source_Index (U : Unit_Number_Type) return Source_File_Index; function Unit_File_Name (U : Unit_Number_Type) return File_Name_Type; function Unit_Name (U : Unit_Number_Type) return Unit_Name_Type; @@ -686,11 +686,11 @@ package Lib is -- source unit, the criterion being that Get_Source_Unit yields the -- same value for each argument. - procedure Increment_Primary_Stack_Count (Increment : Int); + procedure Increment_Primary_Stack_Count (Increment : Nat); -- Increment the Primary_Stack_Count field for the current unit by -- Increment. - procedure Increment_Sec_Stack_Count (Increment : Int); + procedure Increment_Sec_Stack_Count (Increment : Nat); -- Increment the Sec_Stack_Count field for the current unit by Increment function Increment_Serial_Number return Nat; @@ -861,8 +861,8 @@ private Ident_String : Node_Id; Main_Priority : Int; Main_CPU : Int; - Primary_Stack_Count : Int; - Sec_Stack_Count : Int; + Primary_Stack_Count : Nat; + Sec_Stack_Count : Nat; Serial_Number : Nat; Version : Word; Error_Location : Source_Ptr; diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index ebfe27a9bea..bee078e6df5 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -25372,12 +25372,12 @@ package body Sem_Util is -- Number_Of_Elements_In_Array -- --------------------------------- - function Number_Of_Elements_In_Array (T : Entity_Id) return Int is + function Number_Of_Elements_In_Array (T : Entity_Id) return Nat is Indx : Node_Id; Typ : Entity_Id; Low : Node_Id; High : Node_Id; - Num : Int := 1; + Num : Nat := 1; begin pragma Assert (Is_Array_Type (T)); diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads index db02d39fdee..83e824b3838 100644 --- a/gcc/ada/sem_util.ads +++ b/gcc/ada/sem_util.ads @@ -2785,7 +2785,7 @@ package Sem_Util is -- 2) N is a comparison operator, one of the operands is null, and the -- type of the other operand is a descendant of System.Address. - function Number_Of_Elements_In_Array (T : Entity_Id) return Int; + function Number_Of_Elements_In_Array (T : Entity_Id) return Nat; -- Returns the number of elements in the array T if the index bounds of T -- is known at compile time. If the bounds are not known at compile time, -- the function returns the value zero. -- 2.43.2