aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/expect.c
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2023-04-17 12:14:28 +0200
committerMarc Poulhiès <poulhies@adacore.com>2023-06-13 09:31:42 +0200
commit230fef15abbbd37ae2ee339839f7b478d1ce2ab3 (patch)
tree8f58d924a62e18480bcc05a3f2228d0393245a17 /gcc/ada/expect.c
parent95e2a51685d5ce977c332735ddc5ef39e777639e (diff)
downloadgcc-230fef15abbbd37ae2ee339839f7b478d1ce2ab3.zip
gcc-230fef15abbbd37ae2ee339839f7b478d1ce2ab3.tar.gz
gcc-230fef15abbbd37ae2ee339839f7b478d1ce2ab3.tar.bz2
ada: Remove explicit decoration of wrapper created in freezing
We create wrapper functions associated with inherited functions with controlling results which are not overridden during freezing. We partly decorated them explicitly, even though they would be fully decorated later anyway. This early decoration didn't work as expected, because flag In_Private_Part that is read by Override_Dispatching_Operation it not set reliably while freezing (as explained in the comment of Is_Private_Declaration). In effect, we were getting a circularity between Alias and Overridden_Operation, which was causing GNATprove to loop infinitely. Apparently the cleanest fix is to not decorate the wrapper with an early call to Override_Dispatching_Operation. gcc/ada/ * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early decoration.
Diffstat (limited to 'gcc/ada/expect.c')
0 files changed, 0 insertions, 0 deletions