[Ada] Further cleanup in inlining machinery
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 14 Aug 2019 09:52:48 +0000 (09:52 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 14 Aug 2019 09:52:48 +0000 (09:52 +0000)
This is visible if you pass a very small number by means of -gnateinn.

2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* inline.adb (Add_Pending_Instantiation): Fix off-by-one error
in the comparison against the maximum number of instantiations.

From-SVN: r274472

gcc/ada/ChangeLog
gcc/ada/inline.adb

index a8de8110586f85f74e3448273586e41a2a356380..61c22fd146a988eb544d85185ccc7fc211e201f6 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Pending_Instantiation): Fix off-by-one error
+       in the comparison against the maximum number of instantiations.
+
 2019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * inline.adb (Add_Pending_Instantiation): Use greater-or-equal
index 15cec5158a3e36cefd76aafa2f2b2b15efdd02f8..84ad1abe9181bc480b4cfaed5e8baf37289c32c7 100644 (file)
@@ -794,7 +794,7 @@ package body Inline is
       --  Here is a defense against a ludicrous number of instantiations
       --  caused by a circular set of instantiation attempts.
 
-      if Pending_Instantiations.Last >= Maximum_Instantiations then
+      if Pending_Instantiations.Last + 1 >= Maximum_Instantiations then
          Error_Msg_Uint_1 := UI_From_Int (Maximum_Instantiations);
          Error_Msg_N ("too many instantiations, exceeds max of^", Inst);
          Error_Msg_N ("\limit can be changed using -gnateinn switch", Inst);