[Ada] Crash in tagged type constructor with task components
authorJavier Miranda <miranda@adacore.com>
Thu, 23 Apr 2020 17:36:43 +0000 (13:36 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 18 Jun 2020 09:08:34 +0000 (05:08 -0400)
commitb93d80bc8fc58c4ef746a8ddc699167c3ededfb9
tree66006b73332d911197516ea412dab858565c9ec4
parent4f4fd8ae2ce8ad7ccaf996d21ea7e82388bb0e23
[Ada] Crash in tagged type constructor with task components

2020-06-18  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
declarations...
* exp_ch6.ads: Here.
* exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
on the name of the scope to locate the extra formal BIPalloc
since they are copied when the pointer type associated with
dispatching calls is built; rely on routines
Is_Build_In_Place_Entity and BIP_Suffix_Kind.
* exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
first extra formal of the internally built pointer type.
* sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
from a limited interface parent since limitedness is not
inherited in such case (AI-419) and this affects the extra
formals.
* sprint.adb (Write_Itype): Output extra formals of subprogram
types.
gcc/ada/exp_ch6.adb
gcc/ada/exp_ch6.ads
gcc/ada/exp_disp.adb
gcc/ada/exp_util.adb
gcc/ada/sem_ch3.adb
gcc/ada/sprint.adb