diff options
author | Richard Wai <richard@annexi-strayline.com> | 2023-08-09 01:54:48 -0400 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2023-09-19 13:59:31 +0200 |
commit | eceb45bb2e0bf5518d9bd873e25a498456af8e1f (patch) | |
tree | 0f313acc75c84c5ee946c29ebc2557bb8109f89d /gcc/value-range.h | |
parent | 5b945243c77e3ecd8dfab4b8b44f21daa3de8fe1 (diff) | |
download | gcc-eceb45bb2e0bf5518d9bd873e25a498456af8e1f.zip gcc-eceb45bb2e0bf5518d9bd873e25a498456af8e1f.tar.gz gcc-eceb45bb2e0bf5518d9bd873e25a498456af8e1f.tar.bz2 |
ada: Private extensions with the keyword "synchronized" are always limited.
GNAT was relying on synchronized private type extensions deriving from a
concurrent interface to determine its limitedness. This does not cover the case
where such an extension derives a limited interface. RM-7.6(6/2) makes is clear
that "synchronized" in a private extension implies the derived type is limited.
GNAT should explicitly check for the presence of "synchronized" in a private
extension declaration, and it should have the same effect as the presence of
“limited”.
gcc/ada/ChangeLog:
* sem_ch3.adb (Build_Derived_Record_Type): Treat presence of
keyword "synchronized" the same as "limited" when determining if a
private extension is limited.
gcc/testsuite/ChangeLog:
* gnat.dg/sync_tag_discriminals.adb: New test.
* gnat.dg/sync_tag_limited.adb: New test.
Signed-off-by: Richard Wai <richard@annexi-strayline.com>
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions