aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2011-08-02 10:25:26 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-02 12:25:26 +0200
commit2fe829aee4382946ff335be64c2e2d4a1f79f484 (patch)
tree2a9fd645c0fe360d9a0fb8fbe53fb4433e21d4cc /gcc/ada
parente24329cdf00e258cfb48e84f55bbd4903cc48939 (diff)
downloadgcc-2fe829aee4382946ff335be64c2e2d4a1f79f484.zip
gcc-2fe829aee4382946ff335be64c2e2d4a1f79f484.tar.gz
gcc-2fe829aee4382946ff335be64c2e2d4a1f79f484.tar.bz2
sem_ch6.adb (New_Overloaded_Entity, [...]): Do not set Overridden_Operation if subprogram is an initialization procedure.
2011-08-02 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do not set Overridden_Operation if subprogram is an initialization procedure. From-SVN: r177126
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/sem_ch6.adb9
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6507dea..f865c0b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2011-08-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
+ not set Overridden_Operation if subprogram is an initialization
+ procedure.
+
2011-08-02 Yannick Moy <moy@adacore.com>
* par-ch6.adb: Correct obsolete name in comments
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index c0b17fe..a872e90 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -4804,7 +4804,10 @@ package body Sem_Ch6 is
end if;
elsif Is_Subprogram (Subp) then
- if No (Overridden_Operation (Subp)) then
+ if Is_Init_Proc (Subp) then
+ null;
+
+ elsif No (Overridden_Operation (Subp)) then
-- For entities generated by Derive_Subprograms the overridden
-- operation is the inherited primitive (which is available
@@ -4819,6 +4822,7 @@ package body Sem_Ch6 is
and then Comes_From_Source (Alias (Overridden_Subp))
then
Set_Overridden_Operation (Subp, Alias (Overridden_Subp));
+
else
Set_Overridden_Operation (Subp, Overridden_Subp);
end if;
@@ -8362,7 +8366,8 @@ package body Sem_Ch6 is
and then Comes_From_Source (Alias (E))
then
Set_Overridden_Operation (S, Alias (E));
- else
+
+ elsif not Is_Init_Proc (S) then
Set_Overridden_Operation (S, E);
end if;