aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
diff options
context:
space:
mode:
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-11 08:55:57 +0000
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-11 08:55:57 +0000
commitb0d43bae94e79323914175715ada40275297307c (patch)
treee95e75f094acff6244b15f024b594ea1975b96c1 /gcc/ada/ChangeLog
parent69a227e49b0a5b3e80cf44b0232496b9419a9fb0 (diff)
[Ada] Prohibit concurrent types in Ghost regions
This patch ensures that single concurrent type declarations are marked as Ghost when they appear within a Ghost region. In addition, the patch verifies that no concurrent type is declared within a Ghost region and issues an error. ------------ -- Source -- ------------ -- types.ads package Types with Ghost is protected Prot_Obj is -- Error end Prot_Obj; protected type Prot_Typ is -- Error end Prot_Typ; task Task_Obj; -- Error task type Task_Typ; -- Error end Types; ---------------------------- -- Compilation and output -- ---------------------------- $ gcc -c types.ads types.ads:2:14: ghost type "Prot_Obj" cannot be concurrent types.ads:5:19: ghost type "Prot_Typ" cannot be concurrent types.ads:8:09: ghost type "Task_Obj" cannot be concurrent types.ads:10:14: ghost type "Task_Typ" cannot be concurrent 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not concurrent, nor effectively volatile. * ghost.adb (Check_Ghost_Type): New routine. * ghost.ads (Check_Ghost_Type): New routine. * sem_util.adb (Is_Declaration): Reimplemented. The routine can now consider specific subsets of declarations. (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is replicated by Is_Declaration. * sem_util.ads (Is_Declaration): New parameter profile. Update the comment on usage. (Is_Declaration_Other_Than_Renaming): Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256521 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/ChangeLog')
-rw-r--r--gcc/ada/ChangeLog14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index cd66210109b..1eabde4f2e3 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,19 @@
2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+ * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not
+ concurrent, nor effectively volatile.
+ * ghost.adb (Check_Ghost_Type): New routine.
+ * ghost.ads (Check_Ghost_Type): New routine.
+ * sem_util.adb (Is_Declaration): Reimplemented. The routine can now
+ consider specific subsets of declarations.
+ (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is
+ replicated by Is_Declaration.
+ * sem_util.ads (Is_Declaration): New parameter profile. Update the
+ comment on usage.
+ (Is_Declaration_Other_Than_Renaming): Removed.
+
+2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
+
* sem_ch5.adb (Analyze_Assignment): Assignments to variables that act
as Part_Of consituents of single protected types are illegal when they
take place inside a protected function.