diff options
author | Javier Miranda <miranda@adacore.com> | 2015-03-02 11:11:01 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-03-02 12:11:01 +0100 |
commit | 024d33d837c172088236be33fd52b7a6ac8e4e9d (patch) | |
tree | b4a9f096a4089af6ac6688f769059f5ac21a541f /gcc/ada/sem_ch8.adb | |
parent | 7c76aa3f9f6a59ad56dcf3bce8197f4ac53242dc (diff) | |
download | gcc-024d33d837c172088236be33fd52b7a6ac8e4e9d.zip gcc-024d33d837c172088236be33fd52b7a6ac8e4e9d.tar.gz gcc-024d33d837c172088236be33fd52b7a6ac8e4e9d.tar.bz2 |
exp_ch9.adb (Build_Corresponding_Record): Propagate type invariants to the corresponding record type.
2015-03-02 Javier Miranda <miranda@adacore.com>
* exp_ch9.adb (Build_Corresponding_Record): Propagate type
invariants to the corresponding record type.
* exp_disp.ad[sb] (Set_DT_Position_Value): New subprogram
which sets the value of the DTC_Entity associated with a given
primitive of a tagged type and propagates the value to the
wrapped subprogram.
(Set_DTC_Entity_Value): Propagate the DTC
value to the wrapped entity.
* sem_ch13.adb (Build_Invariant_Procedure): Append the code
associated with invariants of progenitors.
* sem_ch3.adb (Build_Derived_Record_Type): Inherit type invariants
of parents and progenitors.
(Process_Full_View): Check hidden inheritance of class-wide type
invariants.
* sem_ch7.adb (Analyze_Package_Specification): Do not generate
the invariant procedure for interface types; build the invariant
procedure for tagged types inheriting invariants from their
progenitors.
* sem_prag.adb (Pragma_Invariant) Allow invariants in interface
types but do not build their invariant procedure since their
invariants will be propagated to the invariant procedure of
types covering the interface.
* exp_ch6.adb, exp_disp.adb, sem_ch3.adb, sem_ch7.adb,
sem_ch8.adb, sem_disp.adb: Replace all calls to Set_DT_Position
by calls to Set_DT_Position_Value.
From-SVN: r221113
Diffstat (limited to 'gcc/ada/sem_ch8.adb')
-rw-r--r-- | gcc/ada/sem_ch8.adb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index 5695033..b86e151 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -28,6 +28,7 @@ with Debug; use Debug; with Einfo; use Einfo; with Elists; use Elists; with Errout; use Errout; +with Exp_Disp; use Exp_Disp; with Exp_Tss; use Exp_Tss; with Exp_Util; use Exp_Util; with Fname; use Fname; @@ -3261,7 +3262,7 @@ package body Sem_Ch8 is if Present (DTC_Entity (Old_S)) then Set_DTC_Entity (New_S, DTC_Entity (Old_S)); - Set_DT_Position (New_S, DT_Position (Old_S)); + Set_DT_Position_Value (New_S, DT_Position (Old_S)); end if; end if; end; |