diff options
author | Ed Schonberg <schonberg@adacore.com> | 2011-08-02 10:25:26 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 12:25:26 +0200 |
commit | 2fe829aee4382946ff335be64c2e2d4a1f79f484 (patch) | |
tree | 2a9fd645c0fe360d9a0fb8fbe53fb4433e21d4cc /gcc/ada | |
parent | e24329cdf00e258cfb48e84f55bbd4903cc48939 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/sem_ch6.adb | 9 |
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; |