aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeert Bosch <bosch@gnat.com>2002-12-15 17:18:20 +0100
committerGeert Bosch <bosch@gcc.gnu.org>2002-12-15 17:18:20 +0100
commit93a81b023fde51aa4eae1c2544766350067caaef (patch)
tree40d4766235dae891937e7eb5d1abbd2bee555e52 /gcc
parent595416a87f5fb0e3d5951d16fe7f7b2c5b6def7a (diff)
downloadgcc-93a81b023fde51aa4eae1c2544766350067caaef.zip
gcc-93a81b023fde51aa4eae1c2544766350067caaef.tar.gz
gcc-93a81b023fde51aa4eae1c2544766350067caaef.tar.bz2
re PR ada/5690 (renaming subprograms and default_expression)
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/sem_ch6.adb10
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e5d0586..ed23cf9 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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.
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index efdb154..650f19c 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -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