[Ada] Improved handling of circular compilation dependencies
2019-12-12 Steve Baird <baird@adacore.com> gcc/ada/ * sem_ch10.adb (Install_With_Clause): Check for the case of a circular dependency involving a predefined (or GNAT-defined) unit and handle that case by generating an appropropriate error message. From-SVN: r279299
This commit is contained in:
parent
4cdd4a33f4
commit
fbb076f4da
@ -1,3 +1,10 @@
|
|||||||
|
2019-12-12 Steve Baird <baird@adacore.com>
|
||||||
|
|
||||||
|
* sem_ch10.adb (Install_With_Clause): Check for the case of a
|
||||||
|
circular dependency involving a predefined (or GNAT-defined)
|
||||||
|
unit and handle that case by generating an appropropriate error
|
||||||
|
message.
|
||||||
|
|
||||||
2019-12-12 Gary Dismukes <dismukes@adacore.com>
|
2019-12-12 Gary Dismukes <dismukes@adacore.com>
|
||||||
|
|
||||||
* sem_ch4.adb, sem_res.adb: Minor reformatting.
|
* sem_ch4.adb, sem_res.adb: Minor reformatting.
|
||||||
|
@ -5336,6 +5336,20 @@ package body Sem_Ch10 is
|
|||||||
Error_Msg_N
|
Error_Msg_N
|
||||||
("instantiation depends on itself", Name (With_Clause));
|
("instantiation depends on itself", Name (With_Clause));
|
||||||
|
|
||||||
|
elsif not Analyzed (Uname)
|
||||||
|
and then Is_Internal_Unit (Current_Sem_Unit)
|
||||||
|
and then not Is_Visible_Lib_Unit (Uname)
|
||||||
|
and then No (Scope (Uname))
|
||||||
|
then
|
||||||
|
if Is_Predefined_Unit (Current_Sem_Unit) then
|
||||||
|
Error_Msg_N
|
||||||
|
("predefined unit depends on itself", Name (With_Clause));
|
||||||
|
else
|
||||||
|
Error_Msg_N
|
||||||
|
("GNAT-defined unit depends on itself", Name (With_Clause));
|
||||||
|
end if;
|
||||||
|
return;
|
||||||
|
|
||||||
elsif not Is_Visible_Lib_Unit (Uname) then
|
elsif not Is_Visible_Lib_Unit (Uname) then
|
||||||
|
|
||||||
-- Abandon processing in case of previous errors
|
-- Abandon processing in case of previous errors
|
||||||
|
Loading…
Reference in New Issue
Block a user