[Ada] Incorrect diagnostic on illegal with clause
authorHristian Kirtchev <kirtchev@adacore.com>
Thu, 11 Jan 2018 08:54:21 +0000 (08:54 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 11 Jan 2018 08:54:21 +0000 (08:54 +0000)
commit715a5d519184ef4251d590ef874e2ef493e92ffe
tree7ee34e20519b550c87b04b34d832978dd6e02a59
parenta2fd4f0efe04ccf7052b367b407de4c92acfa795
[Ada] Incorrect diagnostic on illegal with clause

This patch updates the detection of illegal with clauses which import private
child packages to properly detect a grandchild of Ada.

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

--  fake.ads

package Fake is
end Fake;

--  fake-ada.ads

package Fake.Ada is
end Fake.Ada;

--  fake-ada-text_io.ads

package Fake.Ada.Text_IO is
end Fake.Ada.Text_IO;

--  fake-ada-text_io-float_io.ads

private generic
   type Num is digits <>;

package Fake.Ada.Text_IO.Float_IO is
end Fake.Ada.Text_IO.Float_IO;

--  fake-float_io.ads

private generic
   type Num is digits <>;

package Fake.Float_IO is
end Fake.Float_IO;

--  main.ads

with Fake.Ada.Text_IO.Float_IO;
with Fake.Float_IO;

package Main is
end Main;

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

$ gcc -c main.ads
main.ads:1:06: unit in with clause is private child unit
main.ads:1:06: current unit must also have parent "Text_IO"
main.ads:2:06: unit in with clause is private child unit
main.ads:2:06: current unit must also have parent "Fake"

2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>

gcc/ada/

* sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing
scope of package Ada is Standard.

From-SVN: r256515
gcc/ada/ChangeLog
gcc/ada/sem_ch10.adb