aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.cc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-08-22 21:18:15 +0200
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-09-03 10:16:49 +0200
commit0a862c5af5c603baab8715bbcca6890f77cc59e2 (patch)
tree951fc314e6b144149f08764aa6263219717199fa /gcc/fold-const.cc
parentd8d191469e1e08e7b8530874cbb0f2781dc2e14d (diff)
downloadgcc-0a862c5af5c603baab8715bbcca6890f77cc59e2.zip
gcc-0a862c5af5c603baab8715bbcca6890f77cc59e2.tar.gz
gcc-0a862c5af5c603baab8715bbcca6890f77cc59e2.tar.bz2
ada: Fix internal error with Atomic Volatile_Full_Access object
The initial implementation of the GNAT aspect/pragma Volatile_Full_Access made it incompatible with Atomic, because it was not decided whether the read-modify-write sequences generated by Volatile_Full_Access would need to be implemented atomically when Atomic was also specified, which would have required a compare-and-swap primitive from the target architecture. But Ada 2022 introduced Full_Access_Only and retrofitted it into Atomic in the process, answering the above question by the negative, so the incompatibility between Volatile_Full_Access and Atomic was lifted in Ada 2012 as well, unfortunately without adjusting the implementation. gcc/ada/ * gcc-interface/trans.cc (get_atomic_access): Deal specifically with nodes that are both Atomic and Volatile_Full_Access in Ada 2012.
Diffstat (limited to 'gcc/fold-const.cc')
0 files changed, 0 insertions, 0 deletions