diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-12-13 09:05:23 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-12-13 09:05:23 +0000 |
commit | e1e1e53a4861f5addee43088de14dadf47892f23 (patch) | |
tree | 0d879d83b4462a31dcfa125bba697dc1109fd5dd /gcc/ada | |
parent | a35c1b077e32e4b552dd1d0f2385a3885fcabf4b (diff) | |
download | gcc-e1e1e53a4861f5addee43088de14dadf47892f23.zip gcc-e1e1e53a4861f5addee43088de14dadf47892f23.tar.gz gcc-e1e1e53a4861f5addee43088de14dadf47892f23.tar.bz2 |
[Ada] Better error message for aliased formal and atomic actual
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
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/sem_res.adb | 2 |
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) |