[Ada] Rtsfind: improve comment on RTE_Available
authorBob Duff <duff@adacore.com>
Thu, 19 Sep 2019 08:12:34 +0000 (08:12 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 19 Sep 2019 08:12:34 +0000 (08:12 +0000)
2019-09-19  Bob Duff  <duff@adacore.com>

gcc/ada/

* rtsfind.ads (RTE_Available): Improve comment.

From-SVN: r275930

gcc/ada/ChangeLog
gcc/ada/rtsfind.ads

index c42498ef1769e2f7d15fbf1be1fb1a7e007440b4..7b4bb470888be5c4c7050990d581df480fe2d73f 100644 (file)
@@ -1,3 +1,7 @@
+2019-09-19  Bob Duff  <duff@adacore.com>
+
+       * rtsfind.ads (RTE_Available): Improve comment.
+
 2019-09-18  Bob Duff  <duff@adacore.com>
 
        * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Move call
index 9d5a86cdb72b42561e2425f0e4bcdb98e0aae5c4..2467f85666b3a9939506a97adad169dc0f430d38 100644 (file)
@@ -3203,6 +3203,23 @@ package Rtsfind is
    --  Returns true if a call to RTE will succeed without raising an exception
    --  and without generating an error message, i.e. if the call will obtain
    --  the desired entity without any problems.
+   --
+   --  If we call this and it returns True, we should generate a call to E.
+   --  In other words, the compiler should not call RTE_Available (E) until
+   --  it has decided it wants to generate a call to E. Otherwise we can get
+   --  spurious dependencies and elaboration orders.
+   --
+   --     if RTE_Available (E) -- WRONG!
+   --       and then <some condition>
+   --     then
+   --        generate call to E;
+   --
+   --  Should be:
+   --
+   --     if <some condition>
+   --       and then RTE_Available (E) -- Correct
+   --     then
+   --        generate call to E;
 
    function RTE_Record_Component (E : RE_Id) return Entity_Id;
    --  Given the entity defined in the above tables, as identified by the