[Ada] Better error message for aliased formal and atomic actual
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 13 Dec 2019 09:05:23 +0000 (09:05 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Fri, 13 Dec 2019 09:05:23 +0000 (09:05 +0000)
2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* sem_res.adb (Resolve_Actuals): Give canonical error for
illegal case of atomic/volatile parameter also if the formal is
aliased.

From-SVN: r279364

gcc/ada/ChangeLog
gcc/ada/sem_res.adb

index a1f971ab748f45f6c4fee5b71aa80ab880e02ae5..7282db42a2dc4db56f62aa9bfe690b86a5acb927 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 54d47286605ee1b8e059e553a6d38d6af9db4f15..1c5ae36e0d292f8854358000a7f1dea7e59329d1 100644 (file)
@@ -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)