aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-05-05 18:08:50 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2022-06-01 08:43:18 +0000
commitdbb0c80c36033590f8ad63ea1cdaabcf79c52fd3 (patch)
treecef7075e8dafe71bccb9f03093152c197895b75e /gcc/ada/init.c
parent7a9800fa4d065ce220e00e7d6194dc419b7dbb38 (diff)
downloadgcc-dbb0c80c36033590f8ad63ea1cdaabcf79c52fd3.zip
gcc-dbb0c80c36033590f8ad63ea1cdaabcf79c52fd3.tar.gz
gcc-dbb0c80c36033590f8ad63ea1cdaabcf79c52fd3.tar.bz2
[Ada] Get rid of secondary stack for controlled components of limited types
The initial work didn't change anything for limited types because they use a specific return mechanism for functions called build-in-place where there is no anonymous return object, so the secondary stack was used only for the sake of consistency with the nonlimited case. This change aligns the limited case with the nonlimited case, i.e. either they both use the primary stack or they both use the secondary stack. gcc/ada/ * exp_ch6.adb (Caller_Known_Size): Call Returns_On_Secondary_Stack instead of Requires_Transient_Scope and tidy up. (Needs_BIP_Alloc_Form): Likewise. * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Also return true if the build-in-place function call has no BIPalloc parameter. (Is_Finalizable_Transient): Remove redundant test.
Diffstat (limited to 'gcc/ada/init.c')
0 files changed, 0 insertions, 0 deletions