[Ada] Do not "optimize" by converting Positive to Unsigned
authorBob Duff <duff@adacore.com>
Thu, 7 Jan 2021 19:16:21 +0000 (14:16 -0500)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 4 May 2021 09:17:34 +0000 (05:17 -0400)
gcc/ada/

* exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.

gcc/ada/exp_ch4.adb

index 5b0ba19..a4af950 100644 (file)
@@ -3025,14 +3025,6 @@ package body Exp_Ch4 is
       if Is_Enumeration_Type (Ityp) then
          Artyp := Standard_Integer;
 
-      --  If index type is Positive, we use the standard unsigned type, to give
-      --  more room on the top of the range, obviating the need for an overflow
-      --  check when creating the upper bound. This is needed to avoid junk
-      --  overflow checks in the common case of String types.
-
-      elsif Istyp = Standard_Positive then
-         Artyp := Standard_Unsigned;
-
       --  For modular types, we use a 32-bit modular type for types whose size
       --  is in the range 1-31 bits. For 32-bit unsigned types, we use the
       --  identity type, and for larger unsigned types we use a 64-bit type.