aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/sem_res.adb2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a1f971a..7282db4 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,11 @@
2019-12-13 Eric Botcazou <ebotcazou@adacore.com>
+ * sem_res.adb (Resolve_Actuals): Give canonical error for
+ illegal case of atomic/volatile parameter also if the formal is
+ aliased.
+
+2019-12-13 Eric Botcazou <ebotcazou@adacore.com>
+
* sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses.
* sem_util.adb (Is_Atomic_Object): For an indexed component,
only look at the Has_Atomic_Components aspect of the prefix and
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 54d4728..1c5ae36 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -4717,7 +4717,7 @@ package body Sem_Res is
-- Check bad case of atomic/volatile argument (RM C.6(12))
- if Is_By_Reference_Type (Etype (F))
+ if (Is_By_Reference_Type (Etype (F)) or else Is_Aliased (F))
and then Comes_From_Source (N)
then
if Is_Atomic_Object (A)