[Ada] Prevent crash in Is_Reachable
authorBob Duff <duff@adacore.com>
Mon, 12 Aug 2019 09:01:20 +0000 (09:01 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 12 Aug 2019 09:01:20 +0000 (09:01 +0000)
This patch fixes a bug in Is_Reachable, which causes a crash when checks
are on.

2019-08-12  Bob Duff  <duff@adacore.com>

gcc/ada/

* libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
base subtype.  Clearly it makes no sense to loop "while Idx >=
0", if Idx is of a nonnegative subtype.

From-SVN: r274301

gcc/ada/ChangeLog
gcc/ada/libgnat/a-cbmutr.adb

index 97f3141463913321a9363c1c72a4ad84c4a2ff56..4922e46ff54a0be6adc39a240ef0cedad68debda 100644 (file)
@@ -1,3 +1,9 @@
+2019-08-12  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
+       base subtype.  Clearly it makes no sense to loop "while Idx >=
+       0", if Idx is of a nonnegative subtype.
+
 2019-08-12  Bob Duff  <duff@adacore.com>
 
        * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
index cdc26296d2cb86b136167971f2e2f7ad78ed86f5..fb8585a100f4ca1dd21b2dfa630357261302cc12 100644 (file)
@@ -1767,10 +1767,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
      (Container : Tree;
       From, To  : Count_Type) return Boolean
    is
-      Idx : Count_Type;
-
+      Idx : Count_Type'Base := From;
    begin
-      Idx := From;
       while Idx >= 0 loop
          if Idx = To then
             return True;