aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-11-25 10:28:18 +0100
committerMarc Poulhiès <poulhies@adacore.com>2022-11-28 13:02:31 +0100
commite75d06f9bfad341aea3565f95fffb8937de5f142 (patch)
tree92b55422fd1fcd4e065cd44b612bfb947e7f3137 /libgcc
parentf2b30a724e6bf7ff8e591b176967d596cee7648e (diff)
downloadgcc-e75d06f9bfad341aea3565f95fffb8937de5f142.zip
gcc-e75d06f9bfad341aea3565f95fffb8937de5f142.tar.gz
gcc-e75d06f9bfad341aea3565f95fffb8937de5f142.tar.bz2
ada: Fix internal error on conversion as in/out actual with -gnatVa
The problem is that the regular expansion of the conversion around the call to the subprogram is disabled by the expansion of the validity check around the same call, as documented in Expand_Actuals: -- This case is given higher priority because the subsequent check -- for type conversion may add an extra copy of the variable and -- prevent proper value propagation back in the original object. Now the two mechanisms need to cooperate in order for the code to compile. gcc/ada/ * exp_ch6.adb (Expand_Actuals.Add_Call_By_Copy_Code): Deal with a reference to a validation variable in the actual. (Expand_Actuals.Add_Validation_Call_By_Copy_Code): Minor tweak. (Expand_Actuals): Call Add_Validation_Call_By_Copy_Code directly only if Add_Call_By_Copy_Code is not to be invoked.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions