Commit 2886a495 by Ed Schonberg Committed by Arnaud Charlet

sem_ch3.adb (Process_Full_View): Better error message when the full view of a…

sem_ch3.adb (Process_Full_View): Better error message when the full view of a private type without...

2014-02-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Full_View): Better error message when
	the full view of  a private type without discriminants is an
	unconstrained type.
	* sem_ch7.adb (Uninstall_Declarations): Ditto.

From-SVN: r208147
parent fb12497d
2014-02-25 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Full_View): Better error message when
the full view of a private type without discriminants is an
unconstrained type.
* sem_ch7.adb (Uninstall_Declarations): Ditto.
2014-02-25 Eric Botcazou <ebotcazou@adacore.com>
* sigtramp-armvxw.c: Also restore r0.
......
......@@ -18471,13 +18471,22 @@ package body Sem_Ch3 is
end if;
else
-- For untagged types, verify that a type without discriminants
-- is not completed with an unconstrained type.
-- For untagged types, verify that a type without discriminants is
-- not completed with an unconstrained type. A separate error message
-- is produced if the full type has defaulted discriminants.
if not Is_Indefinite_Subtype (Priv_T)
and then Is_Indefinite_Subtype (Full_T)
then
Error_Msg_N ("full view of type must be definite subtype", Full_T);
Error_Msg_Sloc := Sloc (Parent (Priv_T));
Error_Msg_NE
("full view of& not compatible with declaration#",
Full_T, Priv_T);
if not Is_Tagged_Type (Full_T) then
Error_Msg_N
("\one is constrained, the other unconstrained", Full_T);
end if;
end if;
end if;
......
......@@ -2611,11 +2611,15 @@ package body Sem_Ch7 is
Set_Is_Potentially_Use_Visible (Id, In_Use (P));
-- The following test may be redundant, as this is already
-- diagnosed in sem_ch3. ???
if Is_Indefinite_Subtype (Full)
and then not Is_Indefinite_Subtype (Id)
then
Error_Msg_N
("full view of type must be definite subtype", Full);
Error_Msg_Sloc := Sloc (Parent (Id));
Error_Msg_NE
("full view of& not compatible with declaration#", Full, Id);
end if;
-- Swap out the subtypes and derived types of Id that
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment