sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse of incomplete...
authorEd Schonberg <schonberg@adacore.com>
Wed, 6 Aug 2008 10:03:21 +0000 (12:03 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 6 Aug 2008 10:03:21 +0000 (12:03 +0200)
2008-08-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
of incomplete type.

* sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
of a formal parameter of an incomplete type. Improve error message for
other improper uses of incomplete types.

From-SVN: r138790

gcc/ada/sem_ch3.adb
gcc/ada/sem_ch8.adb

index bc16c08..18538c8 100644 (file)
@@ -1667,6 +1667,7 @@ package body Sem_Ch3 is
 
          if Ada_Version >= Ada_05
            and then Ekind (T) = E_Anonymous_Access_Type
+           and then Etype (E) /= Any_Type
          then
             --  Check RM 3.9.2(9): "if the expected type for an expression is
             --  an anonymous access-to-specific tagged type, then the object
index f6acc6c..c52f5ad 100644 (file)
@@ -832,7 +832,10 @@ package body Sem_Ch8 is
       if Nkind (Nam) = N_Explicit_Dereference
         and then Ekind (Etype (T2)) = E_Incomplete_Type
       then
-         Error_Msg_N ("invalid use of incomplete type", Id);
+         Error_Msg_NE ("invalid use of incomplete type&", Id, T2);
+         return;
+      elsif Ekind (Etype (T)) = E_Incomplete_Type then
+         Error_Msg_NE ("invalid use of incomplete type&", Id, T);
          return;
       end if;