re PR ada/5690 (renaming subprograms and default_expression)
authorGeert Bosch <bosch@gnat.com>
Sun, 15 Dec 2002 16:18:20 +0000 (17:18 +0100)
committerGeert Bosch <bosch@gcc.gnu.org>
Sun, 15 Dec 2002 16:18:20 +0000 (17:18 +0100)
* sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
        case of a body created for a Renaming_As_Body, on which
        conformance checks are not performed. Fixes PR ada/5690.

From-SVN: r60158

gcc/ada/ChangeLog
gcc/ada/sem_ch6.adb

index e5d0586de54984ed66ee616c51bd9d484fccaf2e..ed23cf931b8ba1a6d6b32b8cfc832f5b3dcb18db 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-14   Geert Bosch <bosch@gnat.com>
+
+       * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional 
+        case of a body created for a Renaming_As_Body, on which 
+        conformance checks are not performed. Fixes PR ada/5690.
+
 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
        * adaint.c (__gnat_tmp_name): Better, but good enough for now,
        solution to buffer overflow bug on GNU/Linux.   
index efdb1548897313e2fcf52c58f1fc39111a658966..650f19cbc6c119014894b1e7b5660d50dfb6b63d 100644 (file)
@@ -1056,9 +1056,15 @@ package body Sem_Ch6 is
             --  and the test can lead to spurious errors on nested defaults.
 
             if Present (Spec_Decl)
-              and then Nkind (Original_Node (Spec_Decl)) =
-                N_Subprogram_Renaming_Declaration
               and then not Comes_From_Source (N)
+
+              and then
+                (Nkind (Original_Node (Spec_Decl)) =
+                 N_Subprogram_Renaming_Declaration
+
+                or else (Present (Corresponding_Body (Spec_Decl))
+                  and then Nkind
+                   (Unit_Declaration_Node (Corresponding_Body (Spec_Decl))) = +                      N_Subprogram_Renaming_Declaration))
             then
                Conformant := True;
             else