[Ada] Elaboration order v4.0 and output of dependencies
authorHristian Kirtchev <kirtchev@adacore.com>
Thu, 11 Jul 2019 08:02:30 +0000 (08:02 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 11 Jul 2019 08:02:30 +0000 (08:02 +0000)
commit220dc4b2825745db538915298d0c79f2f12ce5e0
treee2b01a2e4288ab54e6cb89087a28bd2691dc393f
parentd4ba738c67e5579d5a0dff07f20b36f3df9529d5
[Ada] Elaboration order v4.0 and output of dependencies

This patch adds a missing case to the mechanism that outputs the
elaboration order dependencies of units.

------------
-- Source --
------------

--  pack.ads

package Pack is
   procedure Force_Body;
end Pack;

--  pack.adb

package body Pack is
   procedure Force_Body is null;
end Pack;

--  main.adb

with Pack;

procedure Main is begin null; end Main;

----------------------------
-- Compilation and output --
----------------------------

$ gnatmake -q main.adb -bargs -e

ELABORATION ORDER DEPENDENCIES

   unit "pack (spec)" must be elaborated before unit "main (body)"
     reason: unit "main (body)" has with clause for unit "pack (spec)"
   unit "pack (spec)" must be elaborated before unit "pack (body)"
     reason: spec must be elaborated before body

2019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>

gcc/ada/

* bindo.adb: Remove the documentation of switch -d_N because it
is no longer in use.
* bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
New routine.
* bindo-writers.adb (Write_Dependency_Edge): Add the missing
case of a spec-before-body edge.

From-SVN: r273394
gcc/ada/ChangeLog
gcc/ada/bindo-graphs.adb
gcc/ada/bindo-graphs.ads
gcc/ada/bindo-writers.adb
gcc/ada/bindo.adb