aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2019-09-17 07:59:58 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-09-17 07:59:58 +0000
commit01e44bfa81a3423d55e5d624e2c7241daedf44e4 (patch)
tree47d00eb918b1cc27f59a5dd7a3ba0a0abc1281a8 /gcc
parent327940801d612d563781e5b58063889d247058b4 (diff)
downloadgcc-01e44bfa81a3423d55e5d624e2c7241daedf44e4.zip
gcc-01e44bfa81a3423d55e5d624e2c7241daedf44e4.tar.gz
gcc-01e44bfa81a3423d55e5d624e2c7241daedf44e4.tar.bz2
[Ada] Missing tagged type decoration in corresponding record subtypes
The frontend silently skips propagating attribute Is_Tagged_Type to the constrained corresponding record subtype associated with a protected type or task type with discriminants. This change does not affect the functionality of the compiler; it leaves more clean the decoration of internal entities. 2019-09-17 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_ch3.adb (Constrain_Corresponding_Record): Propagate attribute Is_Tagged_Type. From-SVN: r275777
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/sem_ch3.adb1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 2855751..1d728fe 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,10 @@
2019-09-17 Javier Miranda <miranda@adacore.com>
+ * sem_ch3.adb (Constrain_Corresponding_Record): Propagate
+ attribute Is_Tagged_Type.
+
+2019-09-17 Javier Miranda <miranda@adacore.com>
+
* exp_ch3.adb (Build_Record_Init_Proc): Do not generate code to
adjust the tag component when the record is initialized with a
raise expression.
diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb
index 86b6e0d..257761a 100644
--- a/gcc/ada/sem_ch3.adb
+++ b/gcc/ada/sem_ch3.adb
@@ -13750,6 +13750,7 @@ package body Sem_Ch3 is
begin
Set_Etype (T_Sub, Corr_Rec);
Set_Has_Discriminants (T_Sub, Has_Discriminants (Prot_Subt));
+ Set_Is_Tagged_Type (T_Sub, Is_Tagged_Type (Corr_Rec));
Set_Is_Constrained (T_Sub, True);
Set_First_Entity (T_Sub, First_Entity (Corr_Rec));
Set_Last_Entity (T_Sub, Last_Entity (Corr_Rec));